微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c – Valgrind on codeblocks(linux)

我已经在小程序中使用Valgrind来检查记忆泄漏和它的工作.

现在我有一个包含许多类和.cpp和.h文件的大程序,我正在尝试使用Valgrind检查内存泄漏,因为我使用了很多指针,内存等.

我正在使用linux和codeblocks 16.01与gcc,我试图直接在代码块中运行Valgrind但我得到以下错误

--------------- Application output --------------
valgrind: /myPathToTheProject/ValgrindOut.xml: No such file or directory

如果我使用只有.cpp文件和main的小项目进行测试,那么它运行良好,Valgrind会生成ValgrindOut.xml.在这个大项目中,我总是遇到这个错误.有人知道出了什么问题?或其他方式或工具来测试内存泄漏?

编辑 – 运行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.

解决方法

我不确定如何直接从codeblocks运行valgrind.我建议你使用codeblocks构建你的项目.执行时,按照以下命令使用valgrind.

命令

valgrind --tool=memcheck --leak-check=full --show-leak-kinds=all --log-file=leak.txt ./myexecutable <my command line arguments>

valgrind --tool=memcheck --leak-check=full --show-leak-kinds=all --log-file=leak.txt ./myexecutable -i 192.168.1.10 -p 5000

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐