2010-02-04 8 views
20

J'utilise WINDBG pour analyser un fichier de vidage pour un programme qui présente un usage mémoire un peu trop élevé.WINDBG, comment afficher le contenu d'un tableau?

L'un des objets impliqués tient un tableau d'objets, faisant référence à un grand nombre d'objets que je voudrais regarder, pour essayer de savoir pourquoi ils ont été attribués.

Voici ce que j'ai essayé:

D'abord, ma collection d'objets 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 << 

Le tableau _items il est celui que je veux regarder, donc j'ai lancé cette commande:

0:000> !do 1da226ec 

qui produit:

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 

En regardant le web, j'ai trouvé indications qu'il y avait une option -v que je pourrais utiliser sur quelque chose pour produire les valeurs du tableau, mais cela ne semble pas fonctionner.

Comment regarder les éléments de ce tableau?

Répondre

26

Vous cherchez

!da 1da226ec 

Pour vider les objets du tableau.

+8

Avec détails:! Da -détails 1da226ec – lsalamon

Questions connexes