我正在使用ubuntu 12.04。到目前为止,我已经使用了anjuta和codelite作为C ++学校项目的IDE。 然而,他们两个我遇到了一个问题: 启动调试器后,一切正常,直到我尝试在手表部分添加一个数组。它没有显示任何内容,当我尝试继续调试它冻结时,我必须停止调试会话。我必须提到观察变量效果很好。
谢谢,
LE:实际上,调试函数仅在大型数组的情况下冻结...它可能是codelite的错误。有什么意见吗?
答案 0 :(得分:2)
我必须提到观察变量效果很好。
当您在变量上设置观察点时,GDB可能会说Hardware watchpoint N
(但您的IDE可能隐藏了该消息)。
当您在x86处理器上设置大于8字节的观察点时,GDB无法设置硬件观察点(因为x86硬件不支持此类观察点)。 GDB设置了一个软件观察点。软件观察点的实现如下:
软件观察点真的慢。如果您使用top
观看系统,您可能会发现GDB正在消耗100%的CPU。
如果确实需要观看整个数组,this answer显示了如何使用valgrind完成。