c# - Unable to find key-Value pairs in a dictionary using windbg -


i analyzing application hang issue of .net 4.0 application. based on stack traces of few threads guess few key value pairs in dictionary has been removed how. confirm same, trying analyze contents of dictionary using windbg

dictionary object

in see 'entries' in dictionary array. tried list entries using '!da', not work.

tried !dumpvc (i know not work list), gave try

!da , !dumpvc results

and of course !do not work.

could please me list of values in 'entries' of dictionary.

the !da worked example wrote , it's done same way in this msdn article. however, it's not convenient @ all, because bunch of adresses need split key , value.

it's more convenient use !mdt of extension. -e:<depth> argument, expands down keys , values.

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) 

it works netext's !wdict, although not further print values (it supports dml, can click on links):

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 

the sdbgext2 extension claims have !dumpdictionary command, unable use it.

similary, psscor4 had !dc command, it's deprecated , fails me (at least on generic dictionaries in .net 4.6).


Comments

Popular posts from this blog

c# - AutoMapper - What's difference between Condition and PreCondition -

linux - Could not find a package configuration file provided by "Qt5Svg" -