我有一個內存轉儲文件,似乎是'System.Drawing.Bitmap'對象的內存泄漏。 我有這種類型的多個對象和!gcroot不幫助我確定泄漏的位置。如何從'System.Drawing.Bitmap'中提取圖像以通過windbg文件?
示例輸出:
DOMAIN(0071D148):手柄(銷接):1513e8:根: 03335250(System.Object的[]) - > 0248e8ec(System.Drawing.Bitmap)
我有一個想法,從內存轉儲提取圖像到一個圖像文件,然後,當我可以看到什麼是圖像泄漏,我可以檢查創建該特定位圖周圍的源代碼。
那麼,如何將內存寫入文件中,我可以在圖像查看器中打開並查看Bitmap對象所保存的圖像?另外,如果您有其他想法如何識別泄漏源,我很樂意聽到他們的聲音。
謝謝
感謝您的評論。我正在處理一個非常大的程序,並且很難掃描Bitmap使用的所有位置。這就是爲什麼我通過我的想法可以將我引導到代碼中更具體的地方。 – avivr
這不是一個評論,它是一個答案。最後一句話毫不懷疑,你需要在一個非常大的程序中解決這個問題。記憶分析器顯示大海撈針,那是他們的工作。 –
內存轉儲來自客戶,問題在我的環境中不會重複,因此我無法使用Profiler實時調試它。無論如何,再次感謝您的答案。 – avivr