我的最終目標是修改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可讀的調試符號文件中?
乾杯!