引脚未检测到所有动态分配

时间:2019-02-08 02:29:40

标签: valgrind dynamic-memory-allocation tracing intel-pin

我写了一个非常简单的Pin工具来计算程序中动态分配的字节数。我为此工具安装了GIMP,它报告了77 MB的分配。我对报告Valgrind的{​​{1}}做了相同的实验。

我的117 MB工具类似于Pin中的示例。它在每个加载的图像中搜索Pinmalloc()calloc(),并在它们之前添加指令以计算分配的总大小。我该如何解决这个问题?

2 个答案:

答案 0 :(得分:0)

  

它搜索malloc(),calloc()和memalign()

还有其他可能无法拦截和说明的堆分配功能:reallocposix_memalign

您还需要跟踪所有分配的指针并拦截free,否则您的计数可能会太高。

答案 1 :(得分:0)

您需要查找以下所有宏:

#define MMAP    "mmap"
#define REALLOC "realloc"
#define CALLOC  "calloc"
#define MALLOC  "malloc"
#define SBRK    "sbrk"
#define FREE    "free"

捕获以上分配并检查分配大小。