Dumping the contents of a dictionary object using Windbg and SOS.dll


In order to dump the contents of a dictionary, you need to start with either the MethodTable or the name of the class, then you can follow the below steps: 

0:009> !dumpheap -mt 000007feeed0b9c0

         Address               MT     Size

000000018003e630 000007feeed0b9c0       80    

000000018008ec10 000007feeed0b9c0       80     

Statistics:

              MT    Count    TotalSize Class Name

000007feeed0b9c0        2          160 System.Collections.Generic.Dictionary`2[[System.Guid, mscorlib],[Microsoft.TeamFoundation.Framework.Server.TeamFoundationPerformanceCounters, Microsoft.TeamFoundation.Framework.Server]]

Total 2 objects

Note: You can also use -Dumpheap -type System.Collections.Generic.Dictionary`2[[System.Guid, mscorlib],[Microsoft.TeamFoundation.Framework.Server.TeamFoundationPerformanceCounters,Microsoft.TeamFoundation.Framework.Server]]

 

0:009> !do 000000018003e630

Name:        System.Collections.Generic.Dictionary`2[[System.Guid, mscorlib],[Microsoft.TeamFoundation.Framework.Server.TeamFoundationPerformanceCounters, Microsoft.TeamFoundation.Framework.Server]]

MethodTable: 000007feeed0b9c0

EEClass:     000007fef6368220

Size:        80(0x50) 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

000007fef69516e8  4000c5a        8       System.Int32[]  0 instance 000000018003ea90 buckets

000007fef74448a8  4000c5b       10 ...non, mscorlib]][]  0 instance 000000018003eac8 entries

000007fef6951748  4000c5c       38         System.Int32  1 instance                7 count

000007fef6951748  4000c5d       3c         System.Int32  1 instance                7 version

000007fef6951748  4000c5e       40         System.Int32  1 instance               -1 freeList

000007fef6951748  4000c5f       44         System.Int32  1 instance                0 freeCount

000007fef698f1a8  4000c60       18 ....Guid, mscorlib]]  0 instance 000000038000dc90 comparer

000007fef74bfd40  4000c61       20 ...Canon, mscorlib]]  0 instance 0000000000000000 keys

000007fef74bd380  4000c62       28 ...Canon, mscorlib]]  0 instance 000000018206b690 values

000007fef694ef78  4000c63       30        System.Object  0 instance 0000000000000000 _syncRoot

0:009> !da 000000018003eac8

Name:        System.Collections.Generic.Dictionary`2+Entry[[System.Guid, mscorlib],[Microsoft.TeamFoundation.Framework.Server.TeamFoundationPerformanceCounters, Microsoft.TeamFoundation.Framework.Server]][]

MethodTable: 000007fe984b5918

EEClass:     000007fe984b5870

Size:        248(0xf8) bytes

Array:       Rank 1, Number of elements 7, Type VALUETYPE

Element Methodtable: 000007fe984b57d8

[0] 000000018003ead8

[1] 000000018003eaf8

[2] 000000018003eb18

[3] 000000018003eb38

[4] 000000018003eb58

[5] 000000018003eb78

[6] 000000018003eb98

0:009> !dumpvc 000007fe984b57d8 000000018003ead8

Name:        System.Collections.Generic.Dictionary`2+Entry[[System.Guid, mscorlib],[Microsoft.TeamFoundation.Framework.Server.TeamFoundationPerformanceCounters, Microsoft.TeamFoundation.Framework.Server]]

MethodTable: 000007fe984b57d8

EEClass:     000007fef6368348

Size:        48(0x30) 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

000007fef6951748  4000c68        8         System.Int32  1 instance       1348927451 hashCode

000007fef6951748  4000c69        c         System.Int32  1 instance               -1 next

000007fef69497e0  4000c6a       10          System.Guid  1 instance 000000018003eae8 key

000007fef6953be8  4000c6b        0       System.__Canon  0 instance 000000018003e890 value

 

0:009> !do 000000018003e890

Name:        Microsoft.TeamFoundation.Framework.Server.TeamFoundationPerformanceCounters

MethodTable: 000007feef604a38

EEClass:     000007feeed727e8

Size:        64(0x40) bytes

File:        C:\Program Files\Microsoft Team Foundation Server 12.0\Application Tier\TfsJobAgent\Microsoft.TeamFoundation.Framework.Server.dll

Fields:

              MT    Field   Offset                 Type VT     Attr            Value Name

000007fef6955a00  4000ec4        8 ....ReaderWriterLock  0 instance 000000018003e8d0 m_serializationObject

000007fef694e998  4000ec5       10        System.String  0 instance 0000000000000000 m_counterCategoryName

000007fef4c6e4d0  4000ec6       18 ...ounterSetInstance  0 instance 0000000000000000 m_defaultCounterSetInstance

000007feeecb7a58  4000ec7       20 ...ramework.Server]]  0 instance 0000000000000000 m_counterSetInstances

000007fef4c6e430  4000ec8       28 ...ceData.CounterSet  0 instance 0000000000000000 m_counterSet

000007fef6932398  4000ec9       30      System.Object[]  0 instance 0000000000000000 m_counters

 


Comments (1)

  1. ravi says:

    Thanks it was very helpful…

Skip to main content