是否可以从Visual Studio调试器中检测GDI泄漏?

时间:2010-12-01 09:23:40

标签: c++ visual-studio debugging visual-c++ gdi

可以从任务管理器或Process Explorer看到泄漏的GDI对象。 (嗯,你没有看到泄漏,但你可以看到对象的数量是否持续上升。)

还有一些工具可以按类型查看GDI对象,例如GDIView [a],DeLeakerDPUSGDIDebug (sourecode)

[a]请注意,我认为GDIView是一个很好的工具,可以完成识别和确认存在GDI泄漏的工作,但它并没有真正帮助您在大型应用程序中找到泄漏的代码。 (我还会在这里注意到这个工具效果非常好,看起来表现得很好,虽然它的主页很奇怪( - :)

还有一个名为leaktrap的WinDBG插件,它使用MS Detours Library

我也知道(并使用过)AQTime的资源分析器,它允许检测应用程序中的GDI(和其他)资源泄漏,包括泄漏调用的堆栈跟踪。

现在,我的实际问题是:是否可以从VC ++调试器中检测泄漏的GDI对象?因此,不需要单独的工具,并且可以在正常情况下捕获GDI泄漏调试,不必单独检查。

3 个答案:

答案 0 :(得分:7)

GDI对象不必单独检查(非真实),他们可以负责Deleaker - 你会知道泄漏的位置。请仔细阅读说明并观看演示视频:http://deleaker.com/

答案 1 :(得分:3)

Intel Parallel Inspector是一个内存泄漏检查程序,它集成到Visual Studio中,可以检测GDI泄漏。

答案 2 :(得分:0)

Visual Studio没有针对非托管应用程序的内置内存分析器。

这已得到证实。