在此之后,我用 CALLGRIND_xxx_INSTRUMENTATION 宏包装了我的函数。但是,我总是“失忆”。
这是我的程序的简化版本,即使我可以在不使用宏的情况下运行 callgrind,callgrind 仍然会耗尽内存。
#include <cstdio>
#include <valgrind/callgrind.h>
void foo(int i)
{
printf("i=%d\n", i);
}
int main()
{
for (int i=0; i<1048576; i++)
{
CALLGRIND_START_INSTRUMENTATION;
foo(i);
CALLGRIND_STOP_INSTRUMENTATION;
}
}
要运行它,“valgrind --tool=callgrind --instr-atstart=no ./foo >foo.out”。
我做错什么了吗?请帮忙。谢谢!