【发布时间】:2014-06-15 14:17:51
【问题描述】:
这个问题基本上是Import class-dump info into GDB 的克隆,但使用的是 LLDB 而不是 GDB。
使用上述问题的答案中描述的方法,我可以创建包含名为test.stabs的符号的符号文件。
要在 LLDB 中导入和使用此信息,我尝试执行以下操作:
$ lldb test
(lldb) target module add test.stabs
(lldb) b +[TestClass randomNum]
Breakpoint 1: where = test.stabs`+[TestClass randomNum]:F(0,1), address = 0x0000000100000ed0
如您所见,LLDB 可以加载地址,但在实际运行目标时,LLDB 不会中断:
(lldb) r
Process 40430 launched: '/Users/Tyilo/test' (x86_64)
num: 4
Process 40430 exited with status = 0 (0x00000000)
你当然可以直接指定断点的地址:
(lldb) b -a 0x0000000100000ed0
它会起作用的。
有没有办法让b +[TestClass randomNum] 所在的断点在 LLDB 中工作?
【问题讨论】:
-
坦率地说,如果 LLDB 还没有利用二进制文件中的有价值信息,那么这是一个应该针对 LLDB 提交的错误。应该没有理由“教”LLDB 类转储从二进制文件中获得的东西。
标签: objective-c lldb debug-symbols