我需要知道linux调试器gdb是否有办法检测特定C ++类(由文件Chord.cc表示)的函数(任何函数)是否访问特定的内存位置(假设为0xffffbc)。 这对我很有帮助。 感谢。
答案 0 :(得分:4)
从该页面引用:
您可以使用观察点在任何值时停止执行 表达式的变化,而不必预测某个特定的地方 这可能发生。 (这有时称为数据断点。) 表达式可以像单个变量的值一样简单,也可以像 由运营商组合的复杂多变量。例子包括:
- 对单个变量值的引用。
- 转换为适当数据类型的地址。例如,`*(int *)0x12345678'将在指定地址处观察一个4字节区域(假设int占用4个字节)。
然后,您可以尝试应用this post中的技术使其成为条件观察点,并查看是否可以找到将其限制为来自该类的特定函数调用的方法。您可能还会发现this discussion在这方面具有相关性。