c ++ - 代码块上的 Valgrind (linux)

RMR*_*ter 5 c c++ linux memory-leaks codeblocks

我已经用Valgrindin 小程序来检查了memorys leaks它的工作原理。

现在我有一个包含许多类.cpp.h文件的大程序,我正在尝试使用它Valgrind来检查memory leak,因为我用了很多三分球,内存等。

我正在使用linuxand codeblocks 16.01withgcc并尝试Valgrind直接运行,codeblocks但出现以下错误:

 --------------- Application output --------------
valgrind: /myPathToTheProject/ValgrindOut.xml: No such file or directory
Run Code Online (Sandbox Code Playgroud)

如果我用一个只有一个.cpp文件和 main的小项目进行测试,它运行良好,并且Valgrind生成ValgrindOut.xml. 在这个大项目中,我总是收到这个错误。有人知道有什么问题吗?或其他方式或工具来测试memory leak

编辑 - 运行 Valgrind 后的泄漏摘要

Leak summary:

definitely lost: 673 bytes in 6 blocks.
   indirectly lost: 89,128 bytes in 68 blocks.
     possibly lost: 232 bytes in 2 blocks.
   still reachable: 80,944 bytes in 6 blocks.
        suppressed: 0 bytes in 0 blocks.
Run Code Online (Sandbox Code Playgroud)

Aus*_*tin 1

我不确定如何直接从代码块运行 valgrind。我建议您使用代码块构建项目。执行时,按照以下命令使用 valgrind。

命令

valgrind --tool=memcheck --leak-check=full --show-leak-kinds=all --log-file=leak.txt ./myexecutable <my command line arguments>
Run Code Online (Sandbox Code Playgroud)

例子

valgrind --tool=memcheck --leak-check=full --show-leak-kinds=all --log-file=leak.txt ./myexecutable -i 192.168.1.10 -p 5000
Run Code Online (Sandbox Code Playgroud)

这样你就可以生成 valgrind 输出文件,即包含内存泄漏等的leak.txt。