使用LLDB加载ctypes的调试库
问题描述:
与this question类似,如何使用LLDB调试我正在使用ctypes加载的库?使用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加载调试符号?
答
大概你还没有运行你的程序到它已经加载包含fft.c代码库的地步了?
这对lldb应该不是问题。每次加载新的共享库时,lldb都会检查所有现存的断点,以查看它们是否在新共享库中找到任何匹配项。所以你应该能够设置断点,然后运行,当库加载时,新的位置将被添加。如果不是这样,请提交http://bugreporter.apple.com的错误。
lldb居然会发出一个通知,说这已经发生在命令行上。
你可以看,如果你想共享库加载设置:
(lldb) settings set target.process.stop-on-sharedlibrary-events true
但是,这是没有必要让LLDB扫描所有断点匹配新加载的库。
正确,库尚未运行以加载库。这解释了上述消息中的“(待定)”。谢谢。 – bcattle