2013-04-04 89 views
1

我知道我的應用程序正在泄漏內存&我使用WinDbg工具進行配置文件。我連着W3WP進程和運行下面的命令:瞭解WinDbg報告以查找內存泄漏.net

解決-summary

它產生以下結果。

Result of !address -summary command on WinDbg

我想有人幫助我理解這個結果,並指導我或者給我提供一個鏈接,後者又可以幫助我們瞭解需要做些什麼

+0

下面螺紋也相似: http://stackoverflow.com/questions/4946685/good- tutorial-for-windbg?lq = 1 – SharpCoder 2014-04-25 09:01:45

回答

2

MSDN鏈接解釋了不同的內存區域,就如何解釋這個問題而言,您需要記錄輸出兩次,在泄漏之前和之後查看增加的情況,我們可以通過僅查看最大的使用區域來猜測,但您有一個標記爲<unknown>的區域。您可能需要先將符號排序,然後再次運行!address命令。

此外,你可能會發現umdhdebugdiag可能使泄漏找到適合您更輕鬆,此外,還有在WinDbg中的泄漏檢測命令!heap -l

至於環節都關心有上有用的資源related post

+0

謝謝你的快速回復。我查看了WinDbg的幫助,同時解釋了所有其他符號(Image,Heap32等),但沒有談到。我不知道這是否是因爲它是損壞資源的一部分。我正在尋找任何資源,這將使我逐步使用任何工具,這將有助於我進入這個問題的底部。 – SharpCoder 2013-04-04 10:10:33

+0

@Brown_Dynamite''是[虛擬分配](http://stackoverflow.com/questions/4885429/parse-the-crash-dump-in-windbg-for-private-bytes-other-than-managed-heap )顯然,你可以使用'!address -f:VAR'來轉儲它們,這會輸出一堆東西,你可以看看這個[link](http://social.msdn.microsoft.com/Forums/en -US/clr/thread/63bd564a-7278-475f-89e9-b1634a71569f)和[本教程](http://www.codeproject.com/Articles/31382/Memory-Leak-Detection-Using-Windbg),但你可能想要嘗試umdh,debugdiag或'!heap -l',因爲它們會自動檢測泄漏 – EdChum 2013-04-04 10:34:54

+0

@EdShum:感謝您的幫助:-)。我會嘗試這些步驟。 – SharpCoder 2013-04-04 10:39:47