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

Debugging - detect a function writing a memory location

本文关键字:位置 函数 内存 检测 调试      更新时间:2023-10-16

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

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

引用该页面:

您可以使用观察点在 表达变化,无需预测特定位置 这可能会发生。(这有时称为数据断点。这 表达式可以像单个变量的值一样简单,也可以像 复杂为由运算符组合的多个变量。示例包括:

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

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