【发布时间】:2014-07-11 15:09:56
【问题描述】:
我知道valgrind可以调用memcheck进行内存泄漏检查,在这种情况下编译的C++可执行程序必须包含调试信息。那么,如果我想使用 valgrind/callgrind 进行分析,可执行文件必须包含调试信息吗?我运行了一个小测试,似乎 valgrind/callgrind 可以在没有调试信息的情况下发布可执行程序。任何人都可以确认吗?
【问题讨论】:
-
是的,它们可以工作,但是你不会得到任何好的函数或文件名,或行号信息。
-
如果您的程序具有自定义堆或内存池管理,则在发布版本中使用 Valgrind 可能会发现更少或没有内存问题。 Valgrind 对你自己的 alloc/dealloc 机制一无所知。
标签: c++ linux profiling valgrind