iOS debugserver + lldb的安装调试

今天准备试试想试试--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中,然后运行下面代码

[objc]  view plain copy
  1. 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

[objc]  view plain copy
  1. <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">  
  2. <plist version="1.0">  
  3. <dict>  
  4.         <key>com.apple.springboard.debugapplications</key>  
  5.         <true/>  
  6.         <key>get-task-allow</key>  
  7.         <true/>  
  8.         <key>task_for_pid-allow</key>  
  9.         <true/>  
  10.         <key>run-unsigned-code</key>  
  11.         <true/>  
  12. </dict>  
  13. </plist>  

在终端输入命令

[objc]  view plain copy
  1. ldid -Sent.xml debugserver  
ldid—签名工具,通过plist文件指定了授予一应用的一组特权

注意-S是参数紧跟第一个参数

然后会生成一个新的debugserver。。。。 这样准备工作就做好了

接下来 将新生成的debugserver 拷贝到iOS中 目录为/usr/bin/ 中

然后进入通过终端进入手机

输入下面命令:


[objc]  view plain copy
  1. chmod +x /usr/bin/debugserver  
chmod 用于改变文件或目录的访问权限。用户用它控制文件或目录的访问权限。 -x代表  可执行。

http://www.91tech.net/Article/SoftHardTech/EmbeddedSystem/200811/5405.html

如果不运行上面的那句话直接运行

[objc]  view plain copy
  1. debugserver *:1234 -a "SpringBoard"  
会提示 -sh: /usr/bin/debugserver: Permission denied 

之后运行

[objc]  view plain copy
  1. debugserver *:1234 -a "SpringBoard"  
第一次我出现了了一个问题killed -9;

一直提示这个错,网上查了一下说是 命令签名验证不通过导致的错误

这个问题我找了快一天,不知道什么原因 试了很多种方法,最后我用了另一种方法添加签名

重新上面的步骤

不过不用ent.xml

[objc]  view plain copy
  1. <?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">  
  2. <plist version="1.0">  
  3. <dict>  
  4.     <key>com.apple.springboard.debugapplications</key> <true/>  
  5.     <key>run-unsigned-code</key>  
  6.     <true/>  
  7.     <key>get-task-allow</key> <true/> <key>task_for_pid-allow</key> <true/>  
  8. </dict>   
  9. </plist>  

保存为ent.plist 执行下面的命令

[objc]  view plain copy
  1. codesign -s - --ent ent.plist -f debugserver  
同样生成一个debugserver文件 然后拷贝到usr/bin 目录下

之后进入手机 输入

[objc]  view plain copy
  1. 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大神的帮助。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值