调试 - 检测写入内存位置的函数
Debugging - detect a function writing a memory location
我需要知道是否有办法使用 linux debugger gdb 来检测特定C++类(由文件 Chord.cc 表示)的函数(任何函数)是否访问特定的内存位置(假设0xffffbc)。这将对我有很大帮助。谢谢。
GDB 观察点是您正在寻找的:
引用该页面:
您可以使用观察点在 表达变化,无需预测特定位置 这可能会发生。(这有时称为数据断点。这 表达式可以像单个变量的值一样简单,也可以像 复杂为由运算符组合的多个变量。示例包括:
- 对单个变量值的引用。
- 转换为相应数据类型的地址。例如,'*(int *)0x12345678' 将监视指定地址处的 4 字节区域(假设 int 占用 4 个字节)。
然后,您可以尝试应用本文中的技术,使其成为条件观察点,看看是否可以找到一种方法将其限制为该类的特定函数调用。您可能还会发现此讨论在这方面是相关的。
相关文章:
- 这个返回元素位置的基于循环的函数有什么问题?
- 如何使此递归函数从给定的起始位置返回最小的整数?
- 如何在 LLVM 模块中调整函数位置
- (此函数用于计算 SMA).在 FA.exe 中0x00509159引发异常: 0xC0000005:访问冲突读取位置0
- 读取类的析构函数中的位置时发生访问冲突
- 函数,返回变量c++占用的内存位置的大小
- 在 C 代码中调用 Python 函数时第三次出现访问冲突写入位置错误
- 创建一个函数以在给定位置将元素插入到列表中
- GDB 如何查找函数退出的位置
- 使用向量的函数崩溃,调试器说访问冲突读取位置
- C++将可变数量的位置从给定数组传递到函数
- 非常量调用 const 成员函数失败,只读位置C++
- C++11 中的随机数:有没有一种简单的方法可以将生成器种子放在代码的一个位置,然后在不同的函数中使用它?
- C++ 友元函数在内存位置上有何不同?
- 决定放置函数实现的位置
- 为同一存储位置调用构造函数两次是否合法?
- 向量如何在特定位置调用复制构造函数
- 在我的 BST 实现中,我的 findNode 函数没有将父位置返回给其调用函数
- 更新函数之间精灵的位置
- 如何编写一个 void 函数,该函数将在数组中搜索值,并通过引用将该值的位置传递回 main 函数