タグ : WinDbg

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 コマンドを実行し、モジュールのロード状態を確認してみてください。