!da
は、私が書いた例のために働きました。これはthis MSDN articleでも同じように行われます。しかし、あなたはキーと値に分割する必要があるたくさんのアドレスを取得するだけなので、それはまったく便利ではありません。
!mdt
sosex拡張の方がはるかに便利です。 -e:<depth>
引数では、キーと値に展開されます。
0:000> !mdt -e:2 025332a4
025332a4 (System.Collections.Generic.Dictionary`2+Entry[[System.String, mscorlib],[DumpDictionaryInWinDbg.Program+A, DumpDictionaryInWinDbg]][], Elements: 3, ElementMT=001951b4)
[0] (System.Collections.Generic.Dictionary`2+Entry[[System.String, mscorlib],[DumpDictionaryInWinDbg.Program+A, DumpDictionaryInWinDbg]]) VALTYPE (MT=001951b4, ADDR=025332ac)
hashCode:0x68d80062 (System.Int32)
next:0xffffffff (System.Int32)
key:0253316c (System.String) Length=4, String="keyA"
value:02533280 (DumpDictionaryInWinDbg.Program+A)
[1] (System.Collections.Generic.Dictionary`2+Entry[[System.String, mscorlib],[DumpDictionaryInWinDbg.Program+A, DumpDictionaryInWinDbg]]) VALTYPE (MT=001951b4, ADDR=025332bc)
hashCode:0x5d730062 (System.Int32)
next:0xffffffff (System.Int32)
key:025331a0 (System.String) Length=4, String="keyB"
value:025332e0 (DumpDictionaryInWinDbg.Program+A)
[2] (System.Collections.Generic.Dictionary`2+Entry[[System.String, mscorlib],[DumpDictionaryInWinDbg.Program+A, DumpDictionaryInWinDbg]]) VALTYPE (MT=001951b4, ADDR=025332cc)
hashCode:0x520e0062 (System.Int32)
next:0xffffffff (System.Int32)
key:025331d4 (System.String) Length=4, String="keyC"
value:025332ec (DumpDictionaryInWinDbg.Program+A)
それはさらに値(あなたがリンクをクリックすることができますので、それは、DMLをサポートしています)印刷されませんが、それはまた、NetExtの!wdict
で動作します:
0:004> !wdict 0228320C
Items : 3
[0]:==============================================(Physical Index: 1)
System.__Canon key = 022831a0 keyB
System.__Canon value = 022832e0
[1]:==============================================(Physical Index: 0)
System.__Canon key = 0228316c keyA
System.__Canon value = 02283280
[2]:==============================================(Physical Index: 2)
System.__Canon key = 022831d4 keyC
System.__Canon value = 022832ec
SDbgExt2延長の請求への!DumpDictionary
コマンドがありますが、使用できませんでした。
と同じですが、PSSCOR4には!dc
というコマンドがありましたが、廃止され、少なくとも.NET 4.6の一般的な辞書では失敗します。
'!da'は私が書いたコードで動作します。あなたは[mcve]を投稿できますか? –