2010-02-04 138 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 2012-11-29 14:45:50