2017-04-13 102 views
0

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加载调试符号?

回答

1

大概你还没有运行你的程序到它已经加载包含fft.c代码库的地步了?

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

lldb居然会发出一个通知,说这已经发生在命令行上。

你可以看,如果你想共享库加载设置:

(lldb) settings set target.process.stop-on-sharedlibrary-events true 

但是,这是没有必要让LLDB扫描所有断点匹配新加载的库。

+0

正确,库尚未运行以加载库。这解释了上述消息中的“(待定)”。谢谢。 – bcattle