如何查找DirectX3D應用程序的顯存泄露

在關閉一個基於D3D的應用程序時,D3D調試運行庫會報告內存泄露。按照以下步驟定位泄漏點。

1. 在DirectX Control Panel中(通常在DXSDK安裝目錄中可以找到),啓用“Use Debug Version of Direct3D 9”並且將Debug Output Level設置爲”More”。確保Break on Memory Leaks被禁用。點擊Apply。

2. 在VS中調試運行應用程序。在關閉應用程序之後,查看VS的輸出窗口Direct 3D9: (WARN) : Memory Address:  00xxxxxx,  IAllocID= xx dwSize = xxxxxxxx;(pid = xxxxx)

3. 每條記錄對應了一個資源泄漏,查看並記住ID,然後在DirectX Control Panel的Break On AllocID中輸入ID並且點擊Apply。

4. 再次運行程序,重複以上步驟。程序會在分配點中斷,你可以檢查哪裏遺忘釋放。

5. 當你調試完成之後,別忘了將Break On AllocID設置爲0。

發佈了162 篇原創文章 · 獲贊 19 · 訪問量 86萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章