注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

熊猫正正的博客

熊猫正正的天空

 
 
 

日志

 
 

通过lldb远程调试iOS App  

2015-09-02 12:59:04|  分类: ios开发 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
转自:http://www.cnblogs.com/csutanyu/p/3653252.html

通过lldb远程调试iOS App

苹果从Xcode5开始弃用了gcc及gdb, 只能使用llvm用lldb。

在越狱机上虽然仍然可以使用gdb进行调试,但lldb是趋势。下面就介绍一种通过Wifi或者USB,在Mac上使用lldb对iOS App进行调试的方法。(仅限越狱机)

1. 在你的Mac上运行下面的命令,装载(mount) Xcode的develop kisk image

1
hdiutil attach /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/ DeviceSupport/7.0.3\ \(11B508\)/DeveloperDiskImage.dmg

 

2. 拷贝debugserver到某个临时文件夹(我拷贝到Desktop)

1
cp /Volumes/DeveloperDiskImage/usr/bin/debugserver .

 

3.用Xcode创建一个名为entitlements.plist的plist文件。包含以下3个key value键值对:

  Key                         Value

com.apple.springboard.debugapplications      true
run-unsigned-code                    true
get-task-allow                      true
task_for_pid-allow                   true
用TextEdit打开内容如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?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>

  

4. 签名

1
codesign -s - --entitlements entitlements.plist -f debugserver

 

5.  拷贝debugserver到越狱iOS设备

1
scp debugserver root@192.168.1.106:~

 

6. 通过以下命令查看你要调试的程序的进程ID

1
ps aux | grep "YouTube"

 

7. 通过ssh登录到iOS设备,运行以下命令

1
./debugserver *:1234 -a "YouTube"

 

8. 在Mac终端运行lldb命令后,输入以下2条命令:

1
2
platform select remote-ios
process connect connect://192.168.2.104:1234

 

通过wifi调试很慢,有时候"process connect"命令甚至会失败。如果你也遇到这样的情况,你可以通过USB而不是Wifi进行调试。

1. 首先在你的Mac上下载usbmuxd(http://cgit.sukimashita.com/usbmuxd.git/snapshot/usbmuxd-1.0.8.tar.bz2)解压,并运行:

1
2
3
4
wget http://cgit.sukimashita.com/usbmuxd.git/snapshot/usbmuxd-1.0.8.tar.bz2
tar xjfv usbmuxd-1.0.8.tar.bz2
cd usbmuxd-1.0.8/python-client/
python tcprelay.py -t 1234:1234

 

2. 这样所有试图链接到localhost:1234的连接都会通过USB被重定向到你的iOS设备的1234端口

  这样,上面第8步中的process connect命令就可以更改如下:

1
process connect connect://localhost:1234

 

然后你就可以像在Xcode中一样用lldb调试了。

 

Ref:  

http://iphonedevwiki.net/index.php/Debugserver   

  评论这张
 
阅读(92)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017