25

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

还有一些工具允许按类型查看 GDI 对象,例如GDIView [a]、DeLeakerDPUSGDIDebug(源代码)

[a] 请注意,我认为GDIView是一个很好的工具,可以完成识别和确认存在的 GDI 泄漏的工作,但它并不能真正帮助您在大型应用程序中找到泄漏代码。(我还要在这里指出,该工具运行良好并且表现良好,尽管它的主页有点奇怪(-:)

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

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

现在,我的实际问题是:是否可以从 VC++ 调试器中检测到泄漏的 GDI 对象?这样就不需要单独的工具,并且可以在正常调试期间捕获 GDI 泄漏,而不必单独检查。

4

3 回答 3

8

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

于 2011-11-15T16:25:18.920 回答
3

Intel Parallel Inspector是集成到 Visual Studio 中的内存泄漏检查器,可以检测 GDI 泄漏。

于 2010-12-01T10:00:59.657 回答
0

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

这得到了证实。

于 2010-12-01T10:04:33.550 回答