自己搞定了。
cd /usr/bin
chmod 777 debugserver
自己搞定了。
cd /usr/bin
chmod 777 debugserver
7.1 beta3 直接ldid 就可以调试了。
我7.1 beta3 的,直接弄倒/usr/bin 下,报下面错误“error: failed to attach to process named: “” unable to start the exception thread” ,上面的签名应该就是给lldb 赋予,调试权限吧
安照操作,最后下得断点,是下面这样的,有点晕,睡了。
“Process 26 stopped
你试试看“c”能不能resume进程?
可以的,感觉像是指令解析错误了。
stop reason = instruction step over
没有报错,更像是你“ni”了之后的结果
楼主
(lldb) po [UIApplication sharedApplication] windows] objectAtIndex:0] recursiveDescription]
2014-04-17 09:37:28.732 xxxx[870:60b] -[UILabel length]: unrecognized selector sent to instance 0x14648fb0
error: Execution was interrupted, reason: internal ObjC exception breakpoint(-3)…
The process has been returned to the state before expression evaluation.
报以上错,是什么原因呢?
2014-04-17 09:37:28.732 xxxx[870:60b] -[UILabel length]: unrecognized selector sent to instance 0x14648fb0
你这种调法貌似不对,多了个
objectAtIndex:0
改成
[UIApplication sharedApplication] keyWindow] recursiveDescription]
试试
(lldb) process connect connect://192.168.0.225:1234
Assertion failed: (pointer_byte_size == m_host_arch.GetAddressByteSize()), function GetHostInfo, file /SourceCache/lldb/lldb-310.2.37/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp, line 1497.
Abort trap: 6
前面都正常,连接的时候就出错了~
po [UIApplication sharedApplication] keyWindow] recursiveDescription]
2014-04-18 13:33:52.581 HouseRent[2861:60b] -[UILabel length]: unrecognized selector sent to instance 0x16760b70
error: Execution was interrupted, reason: internal ObjC exception breakpoint(-3)…
The process has been returned to the state before expression evaluation.
一样的,
还有楼主,我设置了断点成功后,再怎么调试?
(lldb) frame var
(lldb) 无输出,
(lldb) bt
-[UIViewController viewDidLoad] frame #1: 0x001e143e HouseRent frame #2: 0x00415032 HouseRent frame #3: 0x00421af4 HouseRent frame #4: 0x2fd7c95a UIKit
-[UIViewController loadViewIfRequired] + 518-[UIViewController view] + 24 。。。。。。 frame #22: 0x3225b2ea GraphicsServices
GSEventRunModal + 138ni = step over
si = step into
c = continue
更多指令看manual
我注意到你的lldb版本号是310.2.37,而我今天在升级到Xcode 5.1.1之后,发现用lldb时,ARM指令和THUMB指令混到了一起,完全没法调试,lldb的版本正是310.2.37。我正在尝试装回Xcode 5.0.X,用旧版的lldb试试看,如果问题解决了,就说明是新版lldb的bug
应该是我自身的问题。我用的mini2,结果用armv7s瘦身了= =.应该用arm64才对。
麻烦大名了~~谢谢。
你试试用lldb-310.2.37调试时指令显示得对不对,我这边是有问题的,怀疑就是lldb的问题
换回Xcode 5.0.2后,lldb版本为300.2.53,问题解决。我猜测lldb-310.x.x有bug
~ root# debugserver *:1234 -a “SpringBoard”
debugserver-199 for armv7.
Listening to port 1234…
到这里touch 卡住了,不响应触摸,home键也没反应等了几分钟,白屏了一下,然后自己重启了
((lldb) process connect connect://iOSIP:1234
error: Connection refused
(lldb)
这是怎么回事?touch 4th,iOS 6.1.6
第一个问题,是因为你attach了SpringBoard,自然SpringBoard就卡住了。而SpringBoard响应一旦超时就要被watchdog给kill掉,所以造成了这种现象。解决这种现象的方法就是赶紧在OSX上用lldb连过去开始调试
第二个问题,把这里的iOSIP换成你iOS的实际IP地址啊啊啊啊啊啊啊!不然连不过去,造成了第一个问题……
嗯,是这样的,谢谢
我用arm64瘦身就正常了
你说的指令不正确是指什么?我试试~
我用lldb打印指令,如x/10i 和IDA的差很多,这个好像是针对固定指令长度的~- -!
画瓢成功:lol: