2010-12-01 75 views
19

泄漏的GDI對象可以從任務管理器或Process Explorer中看到。 (嗯,你看不到的泄漏,但是你可以看到,如果對象uasage持續數上升。)是否有可能從Visual Studio調試器檢測到GDI泄漏?

也有工具,允許按類型來查看GDI對象,如GDIView [A],DeLeakerDPUSGDIDebug (sourecode)

[a]請注意,我認爲GDIView是識別和確認存在GDI泄漏的好工具,但它並不能真正幫助您在大型應用程序中找到泄漏代碼。 (我還會在這裏指出,該工具的工作原理非常漂亮,而且似乎很乖,雖然它的主頁是一個littlebit怪異( - :)

還有一個WinDBG的插件叫做leaktrap使用的MS Detours Library

我也知道(並已使用)AQTime的資源分析器,它允許檢測應用程序中的GDI(和其他)資源泄漏,包括泄漏調用的堆棧跟蹤。

但是,我的實際問題是:是否有可能從VC++調試器中檢測泄漏的GDI對象?因此,一個不需要一個separa te工具和GDI泄漏可以在正常調試期間捕獲,而不必單獨檢查。

+1

如果我可以+2這個問題,我會的。除了一個很好的問題之外,你實際上提供了很多很棒的信息。 – tenfour 2010-12-01 10:09:58

回答

6

GDI對象不必單獨檢查(不正確),它們可以由Deleaker負責 - 並且您會知道泄漏的位置。仔細閱讀說明並查看演示視頻:http://deleaker.com/

3

Intel Parallel Inspector是一種內存泄漏檢查程序,它集成到Visual Studio中並可檢測GDI泄漏。

+0

嗯......這是否擴展了現有的visual studio調試器,還是它是一個「只」與Visual Studio集成的獨立工具? (就像AQTime一樣) – 2010-12-01 10:46:00

+0

內存泄漏檢查器和調試器是兩個不同的東西...是的它只是與Visual Studio集成在一起。 – ronag 2010-12-01 11:00:01

0

Visual Studio沒有針對非託管應用程序的內置內存分析器。

確認。

+0

問題是關於GDI資源,而不是內存。 (並且VC++在_native_代碼中也有跟蹤內存泄漏的內置工具。) – 2011-11-15 17:42:07