引脚不会检测所有动态分配

问题描述 投票:0回答:2

我写了一个非常简单的Pin工具来计算程序中动态分配的字节数。我使用这个工具对GIMP进行了检测,并报告了77 MB的分配情况。我和Valgrind做了同样的实验,报告了117 MB

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

valgrind dynamic-memory-allocation tracing intel-pin
2个回答
0
投票

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

还有其他堆分配函数,您可能无法拦截和解释:reallocposix_memalign

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


0
投票

您需要查找以下所有宏:

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

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

© www.soinside.com 2019 - 2024. All rights reserved.