我对提取某个程序的内存访问感兴趣。
我正在寻找以下列表,例如特定执行:
[R\W] [Address] [numBytes]
R 0x0000012d32a21 0x4
我已经尝试过valgrind和mtrace,以及他们的相关工具。
他们似乎都返回了更一般的统计数据或与内存泄漏相关的统计数据。
我对所有内存访问数据感兴趣。
我用谷歌搜索了几个小时,找到了很多处理这个问题的论文,但没有找到有效的开源代码。
感谢您的帮助
答案 0 :(得分:1)
您可以查看Pin。
来自说明:
Pin是IA-32和IA的动态二进制检测框架 x86-64指令集架构,可以创建 动态程序分析工具。
你应该能够找到或写出一个能够满足你需要的东西。例如,this one.链接的示例几乎就是您要求的。您需要在检测中添加IARG_MEMORYREAD_SIZE
和IARG_MEMORYWRITE_SIZE
,但这看起来非常简单。
答案 1 :(得分:1)
valgrind lackey工具应该为您提供所需的信息。
参见http://www.valgrind.org/docs/manual/lk-manual.html 选项--trace-mem = [默认:否]