2010-02-04 3 views
20

Я использую WINDBG для анализа файла дампа для программы, которая демонстрирует слишком высокое использование памяти.WINDBG, как просмотреть содержимое массива?

Один из объектов - это массив объектов, ссылающийся на множество объектов, на которые я хотел бы обратить внимание, чтобы выяснить, почему они были выделены.

Вот что я пробовал:

Во-первых, моя коллекция объектов ServiceContainer:

0:000> !do 05633014 
Name: System.Collections.Generic.List`1[[LVK.IoC.ServiceContainer, LVK.Core]] 
MethodTable: 08b3c7fc 
EEClass: 6f70ca78 
Size: 24(0x18) bytes 
(C:\Windows\assembly\GAC_32\mscorlib\2.0.0.0__b77a5c561934e089\mscorlib.dll) 
Fields: 
     MT Field Offset     Type VT  Attr Value Name 
6f924324 40009d8  4  System.Object[] 0 instance 1da226ec _items 
6f952da0 40009d9  c   System.Int32 1 instance  5356 _size 
6f952da0 40009da  10   System.Int32 1 instance  5538 _version 
6f950770 40009db  8  System.Object 0 instance 00000000 _syncRoot 
6f924324 40009dc  0  System.Object[] 0 shared static _emptyArray 
    >> Domain:Value dynamic statics NYI 
002b2a28:NotInit << 

_items массив есть один я хочу посмотреть, так что я выдал эту команду:

0:000> !do 1da226ec 

который произвел:

Name: System.Object[] 
MethodTable: 6f924324 
EEClass: 6f70da64 
Size: 32784(0x8010) bytes 
Array: Rank 1, Number of elements 8192, Type CLASS 
Element Type: LVK.IoC.ServiceContainer 
Fields: 
None 

Просмотрев веб-сайт, я нашел indications, что существует опция -v, которую я мог бы использовать для создания значений массива, но это, похоже, не работает.

Как посмотреть на элементы этого массива?

ответ

26

Вы ищете

!da 1da226ec 

Чтобы сбросить массив объектов.

+8

С подробностями:! Da -details 1da226ec – lsalamon