一、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指令
网友评论