我需要知道 linux 调试器 gdb 是否有办法检测特定 C++ 类(由文件 Chord.cc 表示)的函数(任何函数)是否访问特定内存位置(比如说 0xffffbc)。这对我有很大帮助。谢谢。
user1718482
问问题
785 次
1 回答
4
GDB 观察点是您正在寻找的:
从该页面引用:
只要表达式的值发生更改,您就可以使用观察点停止执行,而无需预测可能发生这种情况的特定位置。(这有时称为数据断点。)表达式可能像单个变量的值一样简单,也可能像运算符组合的多个变量一样复杂。示例包括:
- 对单个变量值的引用。
- 转换为适当数据类型的地址。例如,`*(int *)0x12345678' 将监视指定地址的 4 字节区域(假设一个 int 占用 4 字节)。
然后,您可以尝试应用本文中的技术使其成为条件观察点,并查看是否可以找到一种方法将其限制为来自该类的特定函数调用。您可能还会发现此讨论与这方面相关。
于 2012-12-11T21:47:44.727 回答