如何通过Valgrind或其他工具检测我的Qt软件中的内存泄漏?

时间:2011-09-10 07:30:25

标签: c++ qt memory memory-leaks detect

我开发了一个带有Qt / C ++的库,现在我想确定内存泄漏测试,

我发现Valgrind并且它似乎是一个很好的探测器(我仍然无法使用它),但是有另一个工具用于测试内存泄漏吗?

2 个答案:

答案 0 :(得分:1)

是的,正如Als在评论中指出的那样,根据我的个人经验,我也建议选择valgrind。您可以使用各种选项,例如--leak-check=yes等。运行valgrind后,它会输出一些推荐的选项,您可以在下次运行时包含这些选项。

Valgrind正在尝试(即发现内存泄漏)的问题是一个复杂的问题。有时valgrind会混淆并输出误报,即它会在没有任何地方的地方显示内存泄漏。但是,除此之外,valgrind非常人性化且有用。

答案 1 :(得分:0)

您可以自己进行内存泄漏检查而无需额外的附加功能(取决于您的代码)。只需提供您自己的运营商版本new和delete。使用容器存储在new中分配的每个内存地址。如果调用delete,则将其从集合中删除。在程序结束时,检查集合是否为空。

细节可以是例如发现于Scott Meyers的书中,有效的C ++,第50项。