WinDbg で SOS デバッガ拡張(SOS.dll)を使う 導入編
WinDbg を使用して .NET アプリケーションをデバッグする場合、SOS デバッガ拡張(SOS.dll)を使用する必要があります。
SOS は、デバッグ対象の CLR によって、ロードする方法が異なるので注意が必要です。
バージョン別の DLL 場所を以下に示します。
(使用するOSによってバージョン情報が異なる場合があります。必ずご自身の環境になったパスに置換してください。)
| Version | SOS.dllの場所 |
|---|---|
| CLR1.0 | Debugging Tools for Windows 内の SOS.dll を使用します |
| CLR1.1 | %SystemRoot%\Microsoft.NET\Framework\v1.1.4322 |
| CLR2.0 | %SystemRoot%Microsoft.NET\Framework\v2.0.50727 |
| CLR4.0 | %SystemRoot%Microsoft.NET\Framework\v4.0.30319 |
パスが確認できたら .load コマンドを実行し、SOS を読み込みます。
.load (sos.dllのFullPath)
次に、.loadby コマンドを実行します。(CLR2.0以前の場合)
.loadby sos mscorwks
なお、 mscorwks は、 CLR4.0 から clr に名称が変更されています。
CLR4.0 のアプリケーションをデバッグする場合には、次のコマンドを発行してください。
.loadby sos clr
なお、.loadby を実行しても見つからない、と表示される場合はモジュールがロードされていない可能性があります。
lm コマンドを実行し、モジュールのロード状態を確認してみてください。
