2016-07-26 2 views
3

実行中のASP.NETアプリケーションをWinDbgでデバッグしようとしています。私が必要とするのは、メソッドに渡される引数の値を見ることです。だから私は、この方法ではブレークポイントでよ、と!clrstack -pから、私はこれを取得:SOSのWindgbで構造体フィールドの値が表示されない

PARAMETERS: 
    this (0x00000004af4fdc10) = 0x000001a2b8a06e68 
    ideaForum (0x00000004af4fdc18) = 0x000001a2b8b11bc8 
    page (0x00000004af4fdc20) = 0x0000000300000001 

私はタイプint?である「ページ」の引数(System.Nullable<System.Int32>)に興味があるので、最初私はMTアドレスを見つけますSystem.Nullable`1[[System.Int32, mscorlib]]の場合、00007ffa263c7ae0になります。それから私は!dumpvc 00007ffa263c7ae0 0000000300000001呼び出すと、ここで私が得るものです:

Name:  System.Nullable`1[[System.Int32, mscorlib]] 
MethodTable: 00007ffa263c7ae0 
EEClass:  00007ffa25dc6580 
Size:  24(0x18) bytes 
File: C:\Windows\Microsoft.Net\assembly\GAC_64\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll 

Fields: 
       MT Field Offset     Type VT  Attr   Value Name 
00007ffa263da2e0 4000707  0  System.Boolean 1 instance hasValue 
00007ffa263baf60 4000708  4   System.Int32 1 instance value 

あなたが見ることができるように、私はWindbg with SOS, How to dump a c# structに答えとしてマークされていたものをやっているが、それは私が必要なものであるフィールドの値を表示しません。値に到達するために他に何が必要ですか?おかげさまで

EDIT:結局のところ、私は引数に間違ったアドレスを使用していたようです。引数名の後の括弧内の数字は正しいので、0x00000004af4fdc20を使用してください。これにより、!dumpvcは期待どおりに動作します。 Sosexは仕事をするために引数名が必要なだけなので使いやすいです

答えて

4

!sosex.mk -aを使用してください。その後の処理がフィールド値の場合は、ダンプタイプに!mdtを使用してください。 Sosはフィールド値を表示するのがよりフレンドリーになる傾向がありますが、sosはレイアウトの技術的詳細を表示するのに優れています。ディスクロージャー:私はSosexの著者ですが、完全に無料です。

+0

スティーブさん、 '' '!sosex.mdt page'''がトリックをしました。私はsosexヘルプページbtwが大好き! – actionresult

+0

私はあなたにとって有益だとうれしいです。 –

関連する問題