Wie kann man WinDBG verwenden, um Ausnahmen aufgrund von .net out of memory aufzuspüren?

Ich muss den Grund für OOM-Ausnahmen (Out of Memory) in einer .NET-Anwendung ermitteln. Bei Verwendung von perfmon stürzt die App mit einem OOM ab, wenn relativ wenig Speicher (500-700 MB) verwendet wird. Daher gehe ich von einer Art Heap-Fragmentierung aus.

Nach der Recherche sieht es so aus, als ob WinDBG das Werkzeug ist, um diese Art von Problem aufzuspüren. Ich habe DebugDiag auf dem Server eingerichtet, auf dem die Prozesse ausgeführt werden. Ich habe es auch geschafft, den Dump von DebugDiag in WinDBG zu laden, den Symbolserver und meine eigenen privaten Symboldateien anzuschließen und alles scheint zu funktionieren - ich kann Befehle wie @ ausführ!clrstack und!dumpheap -stat und ich sehe meine Klassennamen aufgelistet.

Das Problem, das ich jetzt habe, ist, dass ich nicht weiß, wie ich mich dem Problem nähern soll, wo die Fragmentierung ist. WinDGB hat viele Befehle mit vielen verschiedenen Flags und Optionen und ich bin mir nicht sicher, welche ich verwenden soll. Ich konnte auch kein gutes Tutorial finden, um herauszufinden, was zu tun ist - die meisten sind wirklich grundlegend, um WinDBG zum Laufen zu bringen.

Könnte mich jemand in die richtige Richtung weisen?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage