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

  1. コメントはまだありません。

  1. トラックバックはまだありません。