我在實時調試會話中調試Microsoft Word。該進程加載了一些託管加載項,所以我使用sos和psscor4。 winword.exe進程是一個32位進程,但是託管加載項將MSIL作爲PlatformArchitecture枚舉的值,這意味着它們被編譯爲在任何平臺上進行JITT。加載psscor4:垃圾收集器的數據結構未處於遍歷的有效狀態
我正在使用Windbg(x86)。
只要從C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319目錄加載psscor4,然後嘗試使用任何與GC相關的命令,例如!clrusage
命令,我就會收到以下消息:
對於 遍歷,垃圾回收器數據結構未處於有效狀態。它或者處於「計劃階段」,其中對象正在移動,或者我們正在初始化或關閉gc 堆。與顯示,查找或遍歷對象相關的命令爲 以及gc堆段可能無法正常工作。 !dumpheap和 !verifyheap可能會錯誤地報告堆一致性錯誤。錯誤 請求GC堆數據無法構建垃圾回收器狀態的快照。
在psscor4加載期間,甚至與GC相關的sos命令也不起作用。例如,如果我運行了heapstat
或dumpheap
或eeheap -gc
命令,則它們不起作用。
只要我卸載psscor4,它們就會恢復工作。
如果有人可能解釋downvote,那會很好。我很高興通過WinDbg和SOS學習一些關於調試.NET的新知識。 –
只是一個參考:我沒有downvote。我讚賞你的每一個答案和你的幫助。我仍然需要仔細研究一下我之前提出的問題的一些答案,我沒有把它們標記爲正確的。 –
萬歲!謝謝。你會知道一個來自sosex的命令,它給你什麼'!psscor4.clrusage'嗎? Upvoted和取消,downvote,別人做了。 –