尝试观看数组时,调试会话冻结

时间:2012-09-14 15:42:45

标签: c++ ide gdb anjuta codelite

我正在使用ubuntu 12.04。到目前为止,我已经使用了anjuta和codelite作为C ++学校项目的IDE。 然而,他们两个我遇到了一个问题: 启动调试器后,一切正常,直到我尝试在手表部分添加一个数组。它没有显示任何内容,当我尝试继续调试它冻结时,我必须停止调试会话。我必须提到观察变量效果很好。

谢谢,

LE:实际上,调试函数仅在大型数组的情况下冻结...它可能是codelite的错误。有什么意见吗?

1 个答案:

答案 0 :(得分:2)

  

我必须提到观察变量效果很好。

当您在变量上设置观察点时,GDB可能会说Hardware watchpoint N(但您的IDE可能隐藏了该消息)。

当您在x86处理器上设置大于8字节的观察点时,GDB无法设置硬件观察点(因为x86硬件不支持此类观察点)。 GDB设置了一个软件观察点。软件观察点的实现如下:

  1. 单步程序
  2. 价值观发生了变化吗?不 - >转到第1步。是:停止。
  3. 软件观察点真的慢。如果您使用top观看系统,您可能会发现GDB正在消耗100%的CPU。

    如果确实需要观看整个数组,this answer显示了如何使用valgrind完成。