提问:第二版 4.3.5 LLDB的使用说明这里遇到疑问 Help

配置说明: 我的机器 iPhone 4,系统iOS 6.1

问题描述:
4.3.3 配置debugserver通过,期间出现些小问题 已解决

Cheng-teki-iPhone:~ root# debugserver -x spring host:1234 /Applications/MobileSMS.app/MobileSMS
debugserver-199 for armv7.
Listening to port 1234...
Got a connection, waiting for debugger instructions.

4.4.4 LLDB的使用说明
已下载Xcode 5.0.2
lldb登陆ok

(lldb) process connect connect://10.10.10.107:1234
Process 401 stopped
* thread #1: tid = 0x2203, 0x2fe23028 dyld`_dyld_start, stop reason = signal SIGSTOP
    frame #0: 0x2fe23028 dyld`_dyld_start
dyld`_dyld_start:
-> 0x2fe23028:  mov    r8, sp
   0x2fe2302c:  sub    sp, sp, #16
   0x2fe23030:  bic    sp, sp, #7
   0x2fe23034:  ldr    r3, [pc, #112]            ; _dyld_start + 132
(lldb) image list -o -f
[  0] 0x00022000 /Users/Cyan/Library/Developer/Xcode/iOS DeviceSupport/6.1.3 (10B329)/Symbols/usr/lib/dyld

然后我百思了,不得其姐:为什么 我这里只有一个输出,书上的有236个~~

求支援 兄弟们~~~

我注意到 lldb连接后的输出 和上的有些不一样:
4.4.4 Terminal输出的第5行,frame #0 开始 和书本上的不一样;是机器系统关系吗?

你把书上LLDB部分重新看一遍,启动App和附加App的操作是不一样的,书上2种情况都讲了,但是大多数情况下是以附加App举例的,跟你的情况不同

得令,然后解决!谢谢作者!!!

4.3.4 用debugserver 附加进程

Cheng-teki-iPhone:~ root# debugserver *:1234 -a "MobileSMS"
debugserver-199 for armv7.
Listening to port 1234...
Got a connection, waiting for debugger instructions for process 0.

4.3.5 LLDB使用说明

Cyan-MBP:~ Cyan$ /Applications/Xcode502.app/Contents/Developer/usr/bin/lldb

(lldb) process connect connect://10.10.10.107:1234

warning: unable to find and load segment named '__DATA' at 0x3a9ea000 in '/Users/Cyan/Library/Developer/Xcode/iOS DeviceSupport/8.2 (12D508)/Symbols/System/Library/PrivateFrameworks/CoreSurface.framework/CoreSurface' in macosx dynamic loader plug-in.
Process 417 stopped
* thread #1: tid = 0x1f03, 0x3a42aeb4 libsystem_kernel.dylib, stop reason = signal SIGSTOP
    frame #0: 0x3a42aeb4 libsystem_kernel.dylib
-> 0x3a42aeb4:  andeq  r0, r0, r0
   0x3a42aeb8:  andeq  r0, r0, r0
   0x3a42aebc:  andeq  r0, r0, r0
   0x3a42aec0:  andeq  r0, r0, r0

(lldb) image list

[  0] 280610DF-5ED4-3EC7-AA00-629A27009302 0x2fe9c000 /Users/Cyan/Library/Developer/Xcode/iOS DeviceSupport/6.1.3 (10B329)/Symbols/usr/lib/dyld 
[  1] D7439BA0-4F16-3911-AA2A-BDA9A2F2B3E7 0x32afe000 /Users/Cyan/Library/Developer/Xcode/iOS DeviceSupport/8.2 (12D508)/Symbols/System/Library/Frameworks/Foundation.framework/Foundation 
。。。
[ 82] D3E35DCC-6918-381A-A074-5EEDC97F80A4 0x34877000 /Users/Cyan/Library/Developer/Xcode/iOS DeviceSupport/8.2 (12D508)/Symbols/System/Library/PrivateFrameworks/AOSNotification.framework/AOSNotification
  • Xcode 6.3的lldb试了几次,都没成功
  • 有件事情还是很奇怪:有时候Xcode5.0.2的lldb去连iOS上的debugserver的时候,有时候会报错、或者Memory
    Read异常,
  • image list 命令的输出结果(条目数),不是每次都相同(83、76条)

再次谢谢@snakeninny,我继续看下面的了~~

  • 6.x的LLDB应该仍有bug;
  • LLDB连接时报错我也碰到过,但如果不影响后续调试结果就不用管;
  • image list输出结果条数不同是因为一边attach一边还在读这些image,等全部读完了你再运行这个命令,条数就是固定的了
1 个赞

7.x这个bug修复了吗?

Xcode 7已修复此bug

我按照书上来的步骤,Xcode OS X 7 10.11.6
越狱设备 ipod ios 7.1.2 。
大部分教程都可以时间成功。
lldb调试这里有个问题,无论是使用附加进程或者启动进程,当debugserver启动后,被调试的进程就卡死了,不能进行任何操作,刚开始以为是反调试,后来附加了SpringBoard,结果卡死了,只能重启了。
这个是什么问题,是IOS版本太低了吗?不知道问题出在哪里,望指教。

continue

有幸能得到作者的回帖,谢谢指导,问题解决了,IOSRE人生中的第一条回帖。很感谢。之前系统崩溃重启的原因应该也是因为这个了。