我如何以便携方式自动检测C ++中的内存泄漏?

我如何以便携方式自动检测C ++中的内存泄漏? 我正在寻找某种模板解决方案,我可以使用像NEW或DELETE这样的宏来跟踪创建和删除。 它必须在Mac,Linux和Windows上工作。


有很多可用的工具。 例如像libfence这样的特殊库,如dmalloc库。 特别是在Linux上,Valgrind非常有用。

所以最好的“赌注”可能是你获得一些malloc调试库源代码并将其用于你的所有开发中。


我建议在Linux和Mac OSX上运行valgrind,在Windows上运行Microsoft Application Verifier。 两种工具都是免费的。

如果你想在代码中做到这一点,你可以跟踪地图中的分配。 在程序出口处,您只需检查地图是否为空。 如果使用宏,则可以将源代码行和文件与分配记录一起存储在地图中。 不过我相信使用工具更简单,更好。 他们可以帮助你的不仅仅是跟踪新/删除,并且不需要修改你的代码。


Valgrid很好 - 在Linux和Mac上工作。 您可能想尝试使用视窗泄漏检测器。

链接地址: http://www.djcxy.com/p/73037.html

上一篇: How can I automatically detect memory leaks in C++ in a portable way?

下一篇: allocated memory and arrays