美文网首页iOS动态调试
Debugserver安装及使用

Debugserver安装及使用

作者: dpplh | 来源:发表于2017-03-20 18:03 被阅读97次
    iOS8各机型ARM对照

    默认情况下,iOS上并没有安装debugserver,只有在设备连接过一次Xcode,并在window->Deveice菜单中添加此设备后,debugserver才会被Xcode安装到iOS的“/Develope/usr/bin”目录下。
    但是,因为缺少task_for_pid权限,通过Xcode安装的debugserver只能调试我们自己的App。

    配置debugserver

    将未经处理的debugserver从iOS拷贝到OSX中的"/Users/DPP"目录下,命令如下:

    $scp root@iOSIP:/Developer/usr/bin/debugserver ~/debugserver
    

    帮助debugserver减肥命令如下:

    $lipo -thin armv7 ~/debugserver -output ~/debugserver
    // 注意将armv7改成自己设备所对应的ARM
    

    给debugserver添加task_for_pid权限

    拷贝如下代码,保存成ent.xml,放到OSX的"/Users/DPP"目录下

    <plist version="1.0">
    <dict>
    <key>com.apple.springboard.debugapplications</key>
    <true/>
    <key>get-task-allow</key>
    <true/>
    <key>task_for_pid-allow</key>
    <true/>
    <key>run-unsigned-code</key>
    <true/>
    </dict>
    </plist>
    

    运行如下代码:

    $/opt/theos/bin/ldid -Sent debugserver
    

    “-S”与”ent.xml“之间是没有空格的。

    将经过处理的debugserver拷回iOS

    $scp ~/debugserver root@iOSIP:/usr/bin/debugserver
    $ssh root@iOSIP
    ~ root# chmod +x /usr/bin/debugserver
    

    痛debugserver启动或附加进程

    debugserver最常用的两种场景分别是

    debugserver -x backboard IP:port /path/to/executable
    

    debugserver会启动excutable,并开启port端口,等待来自IP的LLDB接入。

    debugserver IP:port -a "ProcessName"
    

    debugserver会附加ProcessName,并开启port端口,等待来自IP的LLDB接入。

    例如:

    ~ root# debugserver -x backboard *:1234 /Applications/MobileSMS.app/MobileSMS
    

    上面的代码会启动MobileSMS,并开启1234端口,等待任意IP地址的LLDB接入。

    而如下代码:

    ~root# debugserver 192.168.1.6:1234 -a "MobileSMS"
    

    会附加MobileSMS,并开启1234端口,等待来自192.168.1.6的LLDB接入。

    相关文章

      网友评论

        本文标题:Debugserver安装及使用

        本文链接:https://www.haomeiwen.com/subject/majinttx.html