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

Mar*_* Ba 23 c++ debugging gdi visual-studio visual-c++

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

还有一些工具允许按类型查看GDI对象,例如GDIView [a],DeLeaker,DPUSGDIDebug(sourecode).

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

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

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

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

Mas*_*ons 7

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

  • 没有亲自试过这个,但无论如何我都会把它标记为答案. (2认同)