1. 需要在内存泄露开始的开始调用void mtrace(void),mtrace 为malloc等函数安装 hook,用于记录内存分配信息,在需要内存泄露检查代码结束的地方调用void muntrace(void). 注意:在一般情况下,不要调用muntrace(), 而让程序自然结束。因为可能有些内存释放代码要到muntrace之后才会运行。
2. 用debug模式编译代码
3. 设置环境变量MALLOC_TRACE为一文件名,这一文件将存有内存分配信息export MALLOC_TRACE=mem_trace.log4. 运行被检查程序
5. 用mtrace检查内存分配log文件($MALLOC_TRACE)
例如:如果log文件名为mem_trace,则执行
mtrace mem_trace mem_trace.log
进行测试
本文介绍了如何通过安装hook函数mtrace和muntrace来检测内存泄露,并提供了在debug模式下编译代码、设置环境变量MALLOC_TRACE、运行被检查程序以及使用mtrace检查内存分配log文件的方法。

2348

被折叠的 条评论
为什么被折叠?



