Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何通过Valgrind或其他工具检测Qt软件中的内存泄漏?_C++_Qt_Memory_Memory Leaks_Detect - Fatal编程技术网

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

C++ 如何通过Valgrind或其他工具检测Qt软件中的内存泄漏?,c++,qt,memory,memory-leaks,detect,C++,Qt,Memory,Memory Leaks,Detect,我用Qt/C++开发了一个库,现在我想确定一下内存泄漏测试 我发现Valgrind似乎是一个很好的检测器(我仍然不使用它),但是否有另一个用于测试内存泄漏的工具?您可以自己进行内存泄漏检查,而无需太多额外的麻烦(取决于您的代码)。只需提供您自己版本的操作员new和delete。使用容器存储在新内存中分配的每个内存地址。如果调用delete,则将其从集合中删除。在程序结束时,检查集合是否为空 细节可以在Scott Meyers书中有效的C++中找到,第50项。 < P>你可以在没有额外的负担的情况

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


我发现Valgrind似乎是一个很好的检测器(我仍然不使用它),但是否有另一个用于测试内存泄漏的工具?

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


细节可以在Scott Meyers书中有效的C++中找到,第50项。

< P>你可以在没有额外的负担的情况下进行内存泄漏检查(取决于你的代码)。只需提供您自己版本的操作员new和delete。使用容器存储在新内存中分配的每个内存地址。如果调用delete,则将其从集合中删除。在程序结束时,检查集合是否为空


细节可以在Scott Meyers书《有效C++》中找到,第50项。

< P>是的,正如Als在评论中指出的,从我个人的经验来看,我也建议和Valrnn一起去。您可以使用多种选项,如
--leak check=yes
等。运行valgrind后,它会输出一些建议选项,您可以在下一次运行中包括这些选项


Valgrind正在尝试的问题,即查找内存泄漏,是一个复杂的问题。有时valgrind会感到困惑并输出误报,即,它在没有内存泄漏的地方显示内存泄漏。但是,除此之外,valgrind是非常用户友好和有用的

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


Valgrind正在尝试的问题,即查找内存泄漏,是一个复杂的问题。有时valgrind会感到困惑并输出误报,即,它在没有内存泄漏的地方显示内存泄漏。但是,除此之外,valgrind是非常用户友好和有用的

如果你在Linxu/Unix平台上,Valgrind就足够好了,只要看看Valgrind网站上关于如何使用它的内容。有一个很好的列表。如果你在Linxu/Unix平台上,Valgrind就足够好了,只要看看Valgrind网站上关于如何使用它的内容。有一个很好的列表。很好,你喜欢我的想法。但是,您应该注意,您的实现遵循操作员new和delete的一般约定……顺便说一句,valgrind正是这样做的!太好了,你喜欢我的主意。但是,您应该注意,您的实现遵循操作员new和delete的一般约定……顺便说一句,valgrind正是这样做的!