我已经成功地用于在 Linux 上objdump --dwarf=decodedline
的文件中查找每个偏移量的源位置。.so
不幸的是,在 Mac-OS X 上。似乎.bundle
文件(用作共享库)不能以这种方式查询。
我很乐观地认为我可以做一些事情,因为gdb
能够正确调试和单步调试这些包中的代码——有人知道它在做什么吗?
更多信息:
该dwarfdump
实用程序声称 .bundle 文件不包含 DWARF 数据,但它确实包含 STABS 数据;但是objdump --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
。