我写了一个非常简单的Pin
工具来计算程序中动态分配的字节数。我为此工具安装了GIMP
,它报告了77 MB
的分配。我对报告Valgrind
的{{1}}做了相同的实验。
我的117 MB
工具类似于Pin
中的示例。它在每个加载的图像中搜索Pin
,malloc()
和calloc()
,并在它们之前添加指令以计算分配的总大小。我该如何解决这个问题?
答案 0 :(得分:0)
它搜索malloc(),calloc()和memalign()
还有其他可能无法拦截和说明的堆分配功能:realloc
和posix_memalign
。
您还需要跟踪所有分配的指针并拦截free
,否则您的计数可能会太高。
答案 1 :(得分:0)
您需要查找以下所有宏:
#define MMAP "mmap"
#define REALLOC "realloc"
#define CALLOC "calloc"
#define MALLOC "malloc"
#define SBRK "sbrk"
#define FREE "free"
捕获以上分配并检查分配大小。