今天准备试试想试试--debugserver + lldb,是根据大神的帖子:
http://bbs.iosre.com/forum.php?mod=viewthread&tid=52&highlight=debugserver
虽然很详细 但是还是遇到了很多问题,在这里记录一下。
首先导出debugserver,导出的路径ios中--Developer/usr/bin/debugserver,放在A文件夹中
然后下载一个ldid,放到/opt/theos/bin/ 我是替换了原来的ldid,之后打开终端在目录A中,然后运行下面代码
- lipo -thin armv7 debugserver -output <span style="font-family:宋体;">out/</span>debugserver
armv7 这个要看自己的设备了。下面的文章可以了解了解
http://blog.csdn.net/think_ma/article/details/42044281
第一行主要是生成只包含armv7s指令的debugserver,不同的设备支持的包含的指令不一样。
然后将下面的代码保存为ent.xml
- <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
- <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>
在终端输入命令
- ldid -Sent.xml debugserver
注意-S是参数紧跟第一个参数
然后会生成一个新的debugserver。。。。 这样准备工作就做好了
接下来 将新生成的debugserver 拷贝到iOS中 目录为/usr/bin/ 中
然后进入通过终端进入手机
输入下面命令:
- chmod +x /usr/bin/debugserver
http://www.91tech.net/Article/SoftHardTech/EmbeddedSystem/200811/5405.html
如果不运行上面的那句话直接运行
- debugserver *:1234 -a "SpringBoard"
之后运行
- debugserver *:1234 -a "SpringBoard"
一直提示这个错,网上查了一下说是 命令签名验证不通过导致的错误
这个问题我找了快一天,不知道什么原因 试了很多种方法,最后我用了另一种方法添加签名
重新上面的步骤
不过不用ent.xml
- <?xml version="1.0" encoding="UTF-8"?><!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/ PropertyList-1.0.dtd">
- <plist version="1.0">
- <dict>
- <key>com.apple.springboard.debugapplications</key> <true/>
- <key>run-unsigned-code</key>
- <true/>
- <key>get-task-allow</key> <true/> <key>task_for_pid-allow</key> <true/>
- </dict>
- </plist>
保存为ent.plist 执行下面的命令
- codesign -s - --ent ent.plist -f debugserver
之后进入手机 输入
- debugserver *:1234 -a "SpringBoard"
然后但打开一个终端输入lldb
然后输入 (lldb) process connect connect://192.168.1.103:1234
刚开始我输入后返回的一直是
error: Connection refused
不知道什么原因
网上又有一个帖子http://iosgods.com/topic/2687-debuggin-with-lldb-ios-81/
重新走了一遍 不知道为什么连上了。。。。。。
随便运行一个 在ssh运行
最后一行waiting for 是只有运行下面的命令后才出现的 说明已经连上了。。。
这样 debugserver终于调试安装好了 后面还会继续更新如何调试 谢谢@snakeninny大神的帮助。