我正在寻找一个内存泄漏检测库。类似于我只需要将其包含在源代码中,然后它就应该开始检测。外部程序可能很好,但我正在寻找一些可以链接到可执行文件中的库。
我正在寻找适用于Windows的库。
#define DEBUG_NEW new(__FILE__, __LINE__)
#define new DEBUG_NEW
new
,它都可以跟踪文件和行号,这可以用于定位程序中的内存泄漏。__FILE__
、__LINE__
是预定义宏,分别评估使用它们的文件名和行号!来自维基百科,
Debug_new指的是C++中一种技术,通过重载和/或重新定义operator new和operator delete,以拦截内存分配和释放调用,从而调试程序的内存使用情况。通常涉及定义一个名为DEBUG_NEW的宏,并使new变成类似于new(_FILE_, _LINE_)的形式,以记录分配时的文件/行信息。Microsoft Visual C++在其Microsoft Foundation Classes中使用了这种技术。有一些方法可以扩展此方法,以避免使用宏重新定义,同时仍能在某些平台上显示文件/行信息。但是,这种方法存在许多固有限制。它只适用于C++,无法捕获由C函数(如malloc)引起的内存泄漏。然而,与一些更完整的内存调试器解决方案相比,它非常简单易用且速度很快。
对于我来说,这是很长一段时间里最好的工具:
http://www.paulnettle.com/pub/FluidStudios/MemoryManagers/Fluid_Studios_Memory_Manager.zip
只需包含一个头文件,就可以使用它了 :)
DEBUG_NEW
。 - Nawaz