Is it possible to detect GDI leaks from the Visual Studio debugger?

北城以北 提交于 2019-11-29 05:38:10

问题


Leaking GDI objects can be seen from the task manager or from Process Explorer. (Well you don't see the leaks, but you can see if object uasage count continually goes up.)

There are also tools that allow to view GDI objects by type, such as GDIView[a], DeLeaker, DPUS or the GDIDebug (sourecode).

[a] Note that I consider GDIView a great tool to get the job done of identifying and confirming the existance GDI leaks, but it doesn't really help you to find the leaking code in large applications. (I will also note here that the tool works very nicely and seems well behaved, although its homepage is a littlebit weird (-: )

There is also a WinDBG plugin called leaktrap that uses MSs Detours Library.

I also know (and have used) AQTime's Resource Profiler that allows to detect GDI (and other) resource leaks in an application including stack traces for the leaking calls.

Now, my actual question however is: Is it possible to detect leaking GDI objects from within the VC++ debugger? So that one doesn't need a separate tool and GDI leaks can be caught during normal debugging and not have to be checked separately.


回答1:


GDI objects do not have to be checked individually (notreally), they can be in charge with Deleaker - and you'll know where the leak. Read the instructions carefully and view a demo video :http://deleaker.com/




回答2:


Intel Parallel Inspector is a memory leak checker that is integrated into Visual Studio and can detect GDI leaks.




回答3:


Visual Studio doesn't have an inbuilt memory profiler for unmanaged applications.

That is confirmed.



来源:https://stackoverflow.com/questions/4322840/is-it-possible-to-detect-gdi-leaks-from-the-visual-studio-debugger

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!