我的最终目标是修改LLDB中的Objective-C程序的symfile。我想扩充方法名称,以便可以使用新的唯一名称来引用调试符号文件中的现有方法。为调试符号创建LLDB别名
例如,如果使用(lldb) b -[Foo bar]
这种方法当然休息的命名-[Foo bar]
的方法,我可以,不过,我想创建这种方法命名为-[Foo baz]
“别名”,所以当我执行在LLDB以下:
method_getImplementation(class_getInstanceMethod([Foo class], @selector(bar)))
我目前的方法:
(lldb) b -[Foo baz]
断点将在地址在获取设置解决的,这是使用dsymutil功能转储symfile:
dsymutil /path/to/executable -o dump.dYSM
从那里,我可以使用dwarfdump命令美化输出到的东西其实我可以编辑。
dwarfdump dump.dYSM/Contents/Resources/DWARF/ExecName
现在,我可以很容易地编辑AT_name
属性包含-[Foo bar]
不过,我不知道如何重新生成dYSM后,我在这“美化”格式的调试信息。
提供,我可以重新编辑的dYSM,我希望能坚持下去回LLDB使用两种:
(lldb) target modules add
或(lldb) target symbol add
所以我的问题是:
- 有没有更好的该怎么办?请注意,我没有源文件和目标文件来重新生成新的dYSM。
- 是否有一个Terminal命令可以将我编辑过的dwarfdump修补到LLDB可读的调试符号文件中?
干杯!