2010-10-05 26 views
1

j'ai eu la ligne suivante de dumpheap! -statWinDbg alternative à! Dumpheap -type?

000007fee09d6960 441762 835293368 System.String 

Je suis intéressé de savoir ce que les 441 762 chaînes sont utilisées pour. Faire un

!dumpheap -type System.String 

liste tout, ou est-ce que je me trompe? Comment puis-je simplement analyser certains d'entre eux?

Répondre

3

Vous pouvez utiliser le !dumpheap -strings pour répertorier les chaînes. Malheureusement, cela ne vous donne pas les références d'objet. Vous pouvez utiliser -min/-max avec l'indicateur -type pour spécifier une taille pour limiter la sortie aux chaînes d'une certaine taille.

SOSEX.dll a une commande très utile !strings, qui répertorie à la fois la référence de l'objet et le texte, de sorte qu'il est facile de localiser des chaînes spécifiques. Il a intégré dans le filtrage et prend en charge les options de longueur min et max aussi bien.

+0

l'application que je le débogage a pris mémoire 1,41 Go (plus environ la même quantité de mémoire virtuelle) et je suis en train de comprendre pourquoi . Avoir 835Mb alloués pour les cordes ne me semblait pas normal, et j'essaie de comprendre à quoi servent toutes les cordes. – jgauffin

+0

Ins't min/max juste la taille de l'objet et pas l'index de l'objet? (Je veux voir les objets # 100000 à 100100 de tous les objets 441762) – jgauffin

+0

@jgauffin: Vous verrez généralement beaucoup de chaînes dans n'importe quelle application .NET, mais 800+ Mo de chaînes semble être trop. Est-ce que vous construisez XML/HTML/quels que soient les documents à la volée peut-être? –

0

si vous utilisez psscor2 vous pouvez utiliser le paramètre pour -Random! Dumpheap