与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是否加载了调试符号?
答案 0 :(得分:1)
据推测,您还没有将程序运行到加载包含fft.c代码的库的程度?
这不应该是lldb的问题。每次加载新的共享库时,lldb都会检查所有现存的断点,以查看它们是否在新的共享库中找到任何匹配项。因此,您应该能够设置断点,然后运行,并且当库加载时,将添加新位置。如果这不是真的,那么请提交http://bugreporter.apple.com的错误。
lldb实际上会发出通知,告知命令行已经发生这种情况。
如果您愿意,可以通过设置:
来加载共享库(lldb) settings set target.process.stop-on-sharedlibrary-events true
但是,没有必要让lldb扫描所有新加载的库以进行断点匹配。