LLDB Python 脚本 - 如何在特定地址添加模块或加载符号文件?

问题描述 投票:0回答:1

在 LLDB 中,您可以在调试会话期间执行以下操作,以在特定地址添加丢失的符号:

target modules load --file <symbol file> .text 0x<address>

如何使用 LLDB Python 脚本模块来做到这一点?我查遍了API也没找到对应的方法。

python lldb
1个回答
0
投票

我想通了。您可以使用

debugger.HandleCommand
来运行任意 LLDB 命令。我解决这个问题的一般方法是定义并注册一个可以在 LLDB 调试会话期间调用的函数。

例如:

def load_libraries(debugger, command, result, internal_dict):
    print(f"image add some_library.so", flush=True)
    debugger.HandleCommand(f"image add some_library.so")
    print(f"target modules load --file some_library.so .text 0x<some address>", flush=True)
    debugger.HandleCommand(f"target modules load --file some_library.so .text 0x<some address>")
© www.soinside.com 2019 - 2024. All rights reserved.