G ++多平台内存泄漏检测工具

mnu*_*zzo 11 c++ eclipse memory-leaks memory-management

有谁知道我在哪里可以找到C++的内存泄漏检测工具,它可以在命令行中运行,也可以在Windows和Linux中作为Eclipse插件运行.我希望它易于使用.最好不要覆盖new(),delete(),malloc()或free().像GDB一样,如果它将在命令行中,但我不记得用于检测内存泄漏.如果有一个单元测试框架自动执行此操作,那将是很好的.

这个问题类似于其他问题(例如Windows下针对GNU C/C++的内存泄漏检测)但是我觉得它有所不同,因为那些要求Windows特定的解决方案或者我宁愿避免使用解决方案.我觉得我在寻找一些更具体的东西.建议不必满足所有要求,但尽可能多的是好的.

谢谢.

编辑:由于这已经出现,"覆盖"我的意思是要求我#include一个库或者改变C++如何编译我的代码的任何东西,如果它在运行时这样做,以便在不同的环境中运行代码赢了不会影响任何伟大的事情.另外,遗憾的是,我没有Mac,所以对此的任何建议都没有用,但谢谢你的尝试.我的桌面运行Windows(我安装了Linux但我的双显示器无法使用它)而且我宁愿不在VM中运行Linux,尽管这当然是一种选择.我的笔记本电脑运行Linux,所以我可以在那里使用该工具,虽然我肯定更喜欢坚持我的桌面,因为屏幕空间非常适合保持所有设计文档和要求,而不必在桌面上移动太多.

注意:虽然我可以尝试答案,但在我尝试了这个建议并且令人满意之前,我不会将其标记为已被接受.

编辑2:我并不担心我的代码的跨平台兼容性,它只是一个使用C++库的命令行应用程序.

Lir*_*una 10

Valgrind是你最好的朋友.Valgrind有一个日食插件."可悲的是"Valgrind不在Windows上运行,但它运行在Mac OSX,*BSD和Linux上,所以我认为这是"多平台".:)

Valgrind会"覆盖"new/delete/malloc/free,但不会在编译期间(因此,如果这就是你的意思,你不必重新编译).它解释二进制文件,因此在测试期间性能会受到一些影响.