2010-09-27 29 views
1

我正在使用sos.dll在wpf中查找內存泄漏。 ! 而且我發現一個WPF對象沒有被釋放, 然後我試圖找出爲什麼它沒有被使用發佈gcroot通過使用sos.dll問題調試wpf

它給了我一個溫暖的是:

請注意,6c369950是不是有效的對象。

段的調試信息

!dumpheap -type WPFUILib.MenuWindow 
Statistics: 
     MT Count TotalSize Class Name 
0c12ef4c  14   224 WPFUILib.MenuWindow+<>c__DisplayClass2b 
03fdf624  2   816 WPFUILib.MenuWindow 
Total 16 objects 

!gcroot 03fdf624 
Note: Roots found on stacks may be false positives. Run "!help gcroot" for 
more info. 
Please note that 03fdf624 is not a valid object. 
+0

我*想*這是因爲對象已被釋放。 – jgauffin 2010-10-05 14:51:49

回答

3

你試圖找到一個方法表(MT)的根源,但!gcroot預期目標地址。如果你想找到你的兩個實例WPFUILib.MenuWindow的根,你需要先找到他們的地址。使用!dumpheap -mt 03fdf624列出地址,然後在這些地址上使用!gcroot