【发布时间】:2012-09-05 00:40:37
【问题描述】:
我需要一个 C 程序在执行期间修改的所有内存位置的日志。这个问题比使用 gdb/valgrind 观察内存区域要复杂一些,因为我没有 start 或 end 地址内存区域。基本上,无论何时何地程序进行内存更新(以 push、move 到内存操作数等的形式),我都需要该内存地址以及写入该地址的值。
有人有什么建议或意见吗?
谢谢!
【问题讨论】:
-
您是否尝试过在每次分配虚拟内存时添加断点然后查看这些地址?
-
您是否尝试过将导线焊接到您的 ram 芯片并将它们连接到逻辑分析仪?
-
@DanZimm 不。我没有这样做的原因之一是我相信使用断点会很慢,尤其是在我们有大量内存更新的情况下。其次,不知道通过push之类的指令更新内存是否可以这样捕获。
标签: c debugging memory gdb instrumentation