获取由C程序修改的所有内存位置的日志

shi*_*oel 2 c memory debugging instrumentation gdb

我需要一个C程序在执行过程中修改的所有内存位置的日志。这个问题比使用gdb / valgrind监视内存区域要复杂得多,因为我没有内存区域的开始结束地址。基本上,无论何时何地,程序进行内存更新(以push移动到内存操作数等形式),我都需要该内存地址以及在该地址写入的值。

有人有任何建议吗?

谢谢!

amd*_*mdn 5

您可以使用Pin(英特尔创建的工具)监视存储器的存储,读取,寄存器的内容等。这是麻省理工学院的一个项目,用于模拟处理器缓存(指令和/或数据)。引脚用于创建详细的指令跟踪,然后将该跟踪用作高速缓存模拟器的输入。