使用LLDB加载ctypes的调试库

时间:2017-04-13 08:28:48

标签: python debugging ctypes lldb

this question类似,如何使用LLDB调试我正在加载ctypes的库?

我可以使用

在调试器中启动它
$ lldb -- python myscript.py

但是我想在C库中的特定函数上设置断点。写下面的内容失败了:

(lldb) breakpoint set -f fft.c -l 78
Breakpoint 1: no locations (pending).
WARNING:  Unable to resolve breakpoint to any actual locations.    

正在运行image list不会显示我的库。如何告诉LLDB加载库?

此外,一旦加载,我如何验证LLDB是否加载了调试符号?

1 个答案:

答案 0 :(得分:1)

据推测,您还没有将程序运行到加载包含fft.c代码的库的程度?

这不应该是lldb的问题。每次加载新的共享库时,lldb都会检查所有现存的断点,以查看它们是否在新的共享库中找到任何匹配项。因此,您应该能够设置断点,然后运行,并且当库加载时,将添加新位置。如果这不是真的,那么请提交http://bugreporter.apple.com的错误。

lldb实际上会发出通知,告知命令行已经发生这种情况。

如果您愿意,可以通过设置:

来加载共享库
(lldb) settings set target.process.stop-on-sharedlibrary-events true

但是,没有必要让lldb扫描所有新加载的库以进行断点匹配。