首先要確認版本,打開 Report.wer 搜尋 mscorwks
LoadedModule[17]=C:\Windows\Microsoft.NET\Framework\v2.0.50727\mscorwks.dll以這個例子來說就是 x86 的 v2.0.50727。
如果中間那個 Framework 的地方是寫 Framework64,那就是 x64 的。
Windbg 很奇妙的 64 bit 不能吃 32 bit,所以要搞清楚。
然後就打開 Windbg 吧,記得要開相對應的版本,
如果當初只有裝 x86 或是只有裝 x64 的 debug tool,
可以去 SDK folder 裡面找找看 (例如
C:\Program Files\Microsoft SDKs\Windows\v7.0\Redist\Debugging Tools for Windows
)再沒有就上網抓吧。
打開以後首先要設 symbol path。
自己 code 的放前面,再來系統的,download 的最後。
C:\_Code\Trend\TMSL\Build\1210_symbol;C:\Windows\Microsoft.NET\Framework64\v2.0.50727;srv*C:/SymbolCache*http://msdl.microsoft.com/download/symbols
然後 open crash dump,試試看 symbol 能不能解
.loadby sos mscorwks看到這個就表示 ok
------------------------------------------------------------ sos.dll needs a full memory dump for complete functionality. You can create one with .dump /ma <filename> ------------------------------------------------------------阿如果看到這個就表示你開錯啦,windbg x64 吃到 32 bit dump 消化不良的
The call to LoadLibrary(C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\sos) failed, Win32 error 0n193 "%1 is not a valid Win32 application." Please check your debugger configuration and/or network access.
最後都 OK 的話就放大絕吧~
!analyze -v
--
Reference
How to configure WinDbg to run other versions of the .NET
How to use Windbg to debug a dump of a 32bit .NET app running on a x64 machine
WinDbg / SOS Cheat Sheet
Intro to WinDBG for .NET Developers
沒有留言:
張貼留言