我的问题是我在代码中设置了一些断点,但其中一些不起作用。在某些地方,它提示“ Unresolved 断点”。
有谁知道为什么会这样?顺便说一下,我正在使用 gdb。
编辑:是的,当然是用调试信息编译的。它只发生在代码中的某些类或点。而且我很确定代码的那部分已经到达,因为我可以逐步到达它
编辑:理查德的解决方案不起作用;不管怎么说,还是要谢谢你。我在调试中编译,没有任何优化。
最佳答案
可能是您试图在尚未加载的共享库中设置断点。在库加载之前这将不起作用。较新的 gdb 允许设置延迟断点,但 CDT 可能(还)不支持。一种解决方法是在从一开始就可用的位置设置断点,当相关共享库已加载时,该位置将到达。然后在共享库中设置另一个断点。现在它应该可以工作了。这有点乏味,但通常有效。
来自 GDB documentation :
For a pending breakpoint whose address is not yet known, this field will contain 'PENDING'. Such breakpoint won't fire until a shared library that has the symbol or line referred by breakpoint is loaded.
关于debugging - 为什么 Eclipse CDT 会忽略断点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/204282/