WinDbg の注意事項など

1.プロセスをアタッチしたままWinDbgを終了させると、アタッチしたプロセスごと終了します。
必ず、「Debug」⇒「Detach Debuggee」を実行してから終了する事。
コレ:


2.1度アタッチして、例外でストップさせた場合、デタッチしてもTry~Catch が機能せず、予期せぬ例外としてプロセスが落ちます。

3.コマンドの意味
・SOSファイルの読み込み(コレ必須)
「.NET2の場合」
.load C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\SOS.dll
.loadby sos mscorwks

「.net4の場合」
.load C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\SOS.dll
.loadby sos clr



・アタッチしたプロセスのメモリー調査
!heap -stat -h 0

・指定したサイズの使用場所を特定
!heap -flt s サイズ (例:!heap -flt s 3890)

・メモリーのスタックトレース
!heap -p -a アドレス (例:!heap -p -a 058d5e40)

・アタッチしたプロセスの全アドレスデータ
!heap -p -all




・例外発生時に止める
sxe clr

・例外発生場所の部分スタックトレース
!sos.clrstack

・例外発生時の全体スタックトレース
!sos.dumpstackobjects

・例外メッセージ表示
!sos.pe アドレス (例:!sos.pe 01d70050)


とりあえずこんなもん。

コメント

このブログの人気の投稿

ヨドバシカメラの店舗購入履歴を見るには…

C# の WPF の DataGrid で 行を交互に背景色を変える+選択色を変える+カラムが無い所も変える…

Visual Studio の ホットリロードが動かない場合に確認するところ