【发布时间】:2012-04-08 05:08:24
【问题描述】:
我已经成功地使用objdump --dwarf=decodedline 在Linux 上的.so 文件中找到每个偏移量的源位置。
不幸的是,在 Mac-OS X 上。.bundle 文件(用作共享库)似乎无法以这种方式查询。
我很乐观,因为gdb 能够正确调试和单步调试这些包中的代码——有人知道它在做什么吗?
更多信息:
dwarfdump 实用程序声称 .bundle 文件不包含 DWARF 数据,但它确实包含 STABS 数据;但是objdump --stabs 也找不到任何 stabs 数据。
(如果它使问题更容易回答,我实际上并不需要所有偏移量;能够查询任何给定偏移量的源位置就足够了)。
我一直在测试的捆绑文件是使用以下工具生成的:
cc -dynamic -bundle -undefined suppress -flat_namespace -g -o c_location.bundle c_location.o -L. -L/Users/User/.rvm/rubies/ruby-1.8.7-p357/lib -L. -lruby -ldl -lobjc
原始 c_location.o 文件确实包含 objdump --dwarf=decodedline 工作所需的信息。
【问题讨论】: