LLDB Python API,如何查找模块的加载地址?

LLDB Python API,如何查找模块的加载地址?,python,debugging,lldb,Python,Debugging,Lldb,我正在尝试为lldb编写一个Python插件,它将根据给定的模块名和模块开始处的偏移量创建一个断点。目前,我正在使用以下命令手动执行此操作: (lldb) image list my_module [ 0] XXXXXXX-XXXX-XXXX-XXXX-XXXXXXXX 0x00000000deadbeef /path/to/my_module (lldb) breakpoint set -a 0x00000000deadbeef + 0x1234 我想让它自动化。为此,我需要获取myu模块

我正在尝试为lldb编写一个Python插件,它将根据给定的模块名和模块开始处的偏移量创建一个断点。目前,我正在使用以下命令手动执行此操作:

(lldb) image list my_module
[  0] XXXXXXX-XXXX-XXXX-XXXX-XXXXXXXX 0x00000000deadbeef /path/to/my_module
(lldb) breakpoint set -a 0x00000000deadbeef + 0x1234
我想让它自动化。为此,我需要获取
myu模块的加载地址。类似于使用lldb的
图像列表
命令并读取结果地址

我找到了方法
SBModule.ResolveFileAddress()
,它进行反向转换——它获取绝对地址并将其转换为相对于模块1的相对地址


是否有一个函数接受
SBModule
对象或模块名称,并返回该模块的加载?

模块本身并没有加载地址。在许多系统上,模块的不同部分可以独立地重新定位,因此每个部分可以有不同的加载地址。这种情况甚至可能发生在mach-o上的共享缓存中,尽管通常mach-o将二进制文件作为一个单元加载

“图像列表”显示二进制文件文本部分的加载地址。如果您知道要查找的符号位于文本部分,则可以从SBModule获取SBSections(它有一个可编辑的“sections”属性),找到文本部分并获取其加载地址