1

我需要知道 linux 调试器 gdb 是否有办法检测特定 C++ 类(由文件 Chord.cc 表示)的函数(任何函数)是否访问特定内存位置(比如说 0xffffbc)。这对我有很大帮助。谢谢。

4

1 回答 1

4

GDB 观察点是您正在寻找的:

从该页面引用:

只要表达式的值发生更改,您就可以使用观察点停止执行,而无需预测可能发生这种情况的特定位置。(这有时称为数据断点。)表达式可能像单个变量的值一样简单,也可能像运算符组合的多个变量一样复杂。示例包括:

  • 对单个变量值的引用。
  • 转换为适当数据类型的地址。例如,`*(int *)0x12345678' 将监视指定地址的 4 字节区域(假设一个 int 占用 4 字节)。

然后,您可以尝试应用本文中的技术使其成为条件观察点,并查看是否可以找到一种方法将其限制为来自该类的特定函数调用。您可能还会发现此讨论与这方面相关。

于 2012-12-11T21:47:44.727 回答