调试 - 检测写入内存位置的函数

时间:2012-12-11 21:20:08

标签: c++ debugging gdb

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

1 个答案:

答案 0 :(得分:4)

您正在寻找

GDB watchpoints

从该页面引用:

  

您可以使用观察点在任何值时停止执行   表达式的变化,而不必预测某个特定的地方   这可能发生。 (这有时称为数据断点。)   表达式可以像单个变量的值一样简单,也可以像   由运营商组合的复杂多变量。例子包括:

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

然后,您可以尝试应用this post中的技术使其成为条件观察点,并查看是否可以找到将其限制为来自该类的特定函数调用的方法。您可能还会发现this discussion在这方面具有相关性。