Memory leaks tcmalloc不生成堆栈跟踪
我正在运行一个与tcmalloc链接的二进制文件,它没有生成堆栈跟踪 它正在检测泄漏Memory leaks tcmalloc不生成堆栈跟踪,memory-leaks,tcmalloc,Memory Leaks,Tcmalloc,我正在运行一个与tcmalloc链接的二进制文件,它没有生成堆栈跟踪 它正在检测泄漏 The output says: The 1 largest leaks: Leak of 1401231 bytes in 82093 objects allocated from: If the preceding stack traces are not enough to find the leaks, try running THIS shell command: pprof ../../pro
The output says:
The 1 largest leaks:
Leak of 1401231 bytes in 82093 objects allocated from:
If the preceding stack traces are not enough to find the leaks, try running THIS shell command:
pprof ../../prog "/tmp/prog.15062.prog-end.heap" --inuse_objects --lines --heapcheck --edgefraction=1e-10 --nodefraction=1e-10 --gv
当我运行pprof时,我收到一条消息,表示没有要打印的节点
我随信附上的代码中有可疑的内存泄漏
HeapLeakChecker checker("prog");
....
assert(checker.NoLeaks());
关于如何调试这个问题有什么想法吗?我建议尝试使用-fno-ommit-frame-pointer(gcc)构建程序,因为在某些设置中可能需要使用帧指针来获取堆栈跟踪 tcmalloc通常使用libunwind来获取堆栈跟踪,但由于死锁问题,这不适用于任何地方
一个有趣的信息是,生成的文件(/tmp/prog.15062.prog-end.heap,在本例中)是否包含一些地址。Hmmm。。。。对于类似的情况,我通常使用deleaker或任何其他调试器。。。