2

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

谢谢,

LE:实际上,调试功能只有在大数组的情况下才会冻结……那可能是codelite的一个错误。有什么意见吗?

4

1 回答 1

2

我不得不提一下,观察变量效果很好。

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

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

  1. 单步程序
  2. 价值观改变了吗?否 -> 转到步骤 1。是:停止。

软件观察点真的很慢。如果您使用 观察您的系统top,您可能会发现 GDB 正在消耗 100% 的 CPU。

如果您真的需要观看整个数组,这个答案显示了如何使用 valgrind 来完成。

于 2012-09-14T16:54:14.363 回答