美文网首页
十五、动态调试

十五、动态调试

作者: Lovell_ | 来源:发表于2018-12-17 17:03 被阅读12次

    一、Xcode动态调试的原理

    将程序运⾏行行起来,通过下断点、打印等⽅方式,查看参数、返回值、函数调⽤用流程等

    image.png

    二、动态调试任意APP的原理

    三、debugserver环境搭建

    1、给iPhone上的debugserver签权限——动态调试任意App的权限

    1.1 把iPhone上的/Developer/usr/bin/debugserver⽂件复制到Mac上来;
    1.2 导出debugserver文件之前的签名权限:ldid -e debugserver > debugserver.entitlements
    1.3 加上get-task-allow和task_for_pid-allow权限,重新签名:ldid -Sdebugserver.entitlements debugserver
    1.4 debugserver文件放到iPhone的/Device/usr/bin⽬录,因为放不回/Developer/usr/bin/,它是只读的。
    1.5 电脑端添加映射端口10011:10011:修改文件usb.sh:python /Users/......../usbmuxd/tcprelay.py -t 22:10010 10011:10011
    1.6 登录到手机,终端中敲debugerserver,提示Permission denied,chmod +x /usr/bin/debugserver赋权限。

    debugserver有权限了,可以在命令行操作了。
    下一步,让debugserver附加到某个APP进程。

    2、搭建debugserver

    登录到手机

    实操

    debugserver就搭建起来了,下一步就是用lldb去连接了(下一步要另起一个终端窗口,在Mac上操作终端)。

    四、lldb连接debugserver

    另起一个终端窗,如下

    总括

    process connect connect:// :
    后面的connect是个协议。

    连接方法一:通过ip地址连接(不推荐)
    Mac端的lldb连接手机上的debugserver——使用手机IP地址的方式、WIFI方式

    但是很久就不用手机的ip地址来连接手机了,因为这样需要手机和电脑处于同一个WIFI下。

    连接方法二:通过USB连接(推荐)

    现在更多是将手机的某个端口映射到Mac的某个端口,到时候Mac访问自己的端口就行了。

    Mac端的lldb连接手机上的debugserver——使用USB接口、多添加个端口映射 连接debugserver服务——连接Mac上的10011端口

    连接Mac上的10011端口,就相当于连接了手机上的10011端口。

    连接debugserver服务成功

    到此。

    往下开始LLDB指令

    相关文章

      网友评论

          本文标题:十五、动态调试

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