Dumps
Ein Speicherabbild ist eine Datei, die eine Momentaufnahme eines Prozesses zum Zeitpunkt der Erstellung des Speicherabbilds enthält und zur Untersuchung des Zustands Ihrer Anwendung nützlich sein kann. Mithilfe von Speicherabbildern können Sie Ihre .NET-Anwendung selbst dann debuggen, wenn sich das Anfügen eines Debuggers schwierig gestaltet, z. B. in Umgebungen für die Produktion oder für Continuous Integration. Speicherabbilder ermöglichen es Ihnen, den Zustand des problematischen Prozesses zu erfassen und den Prozess zu untersuchen, ohne die Anwendung beenden zu müssen.
Erfassen von Speicherabbildern
Je nachdem, auf welcher Plattform Ihre App ausgeführt wird, können Speicherabbilder auf verschiedene Arten gesammelt werden.
Hinweis
Speicherabbilder können vertrauliche Informationen aufweisen, da sie die vollständigen Arbeitsspeicherdaten des laufenden Prozesses enthalten. Bedenken Sie beim Arbeiten mit Speicherabbildern alle Sicherheitseinschränkungen und -richtlinien.
Tipp
Häufig gestellte Fragen zur Erfassung von Speicherabbildern, zur Analyse und zu anderen Einschränkungen finden Sie unter Speicherabbilder: Häufig gestellte Fragen.
Sie können Ihre Anwendung mithilfe von Umgebungsvariablen so konfigurieren, dass bei einem Absturz ein Speicherabbild erfasst wird.
Speicherabbilder sollten auch erfasst werden, wenn eine App noch nicht abgestürzt ist. Wenn Sie z. B. den Zustand einer Anwendung untersuchen möchten, die sich anscheinend in einem Deadlock befindet, ist es nicht hilfreich, Umgebungsvariablen zum Erfassen von Speicherabbildern bei einem Absturz zu konfigurieren, da die App noch immer ausgeführt wird.
dotnet-dump ist ein einfaches plattformübergreifendes Befehlszeilentool zum Sammeln eines Speicherabbilds. Mehrere andere Debuggertools wie Visual Studio oder windbg verfügen ebenfalls über Funktionen für die Speicherabbildsammlung.
Wenn Sie Ihre App in einer Produktionsumgebung ausführen oder sie verteilt (mehrere Dienste, Replikate) ausführen, bietet dotnet-monitor Unterstützung für viele gängige Szenarien und Ad-hoc-Diagnoseuntersuchungen, einschließlich der Sammlung und Ausgabe von Speicherabbildern. Es ermöglicht die Remoteerfassung von Speicherabbildern oder mit Triggerbedingungen.
Analysieren von Speicherabbildern
Navigieren Sie zu Debuggen von Linux-Speicherabbildern, um Informationen zur Analyse von unter Linux gesammelten Speicherabbildern zu finden.
Navigieren Sie zu Debuggen von Windows-Speicherabbildern, um Informationen zum Analysieren von unter Windows gesammelten Speicherabbildern zu finden.
Speicheranalyse
Sie können eine Speicheranalyse für Ihre Anwendung durchführen, wenn der Arbeitsspeicher Ihrer App weiter zunimmt, aber Sie sich nicht sicher sind, warum dies der Fall ist. Das Tutorial zum Debuggen von Speicherverlusten zeigt, wie Sie einen Speicherverlust mithilfe der dotnet-CLI-Tools anhand der dotnet-sos-Befehle dumpheap und gcroot debuggen.
Die Visual Studio-Speicheranalyse kann verwendet werden, um einen Speicherverlust unter Windows zu diagnostizieren.
Weitere Informationen
Informieren Sie sich auch darüber, wie Sie mithilfe von Speicherabbildern Probleme in Ihrer .NET-Anwendung diagnostizieren können.
Im Tutorial Debuggen von Linux-Speicherabbildern werden Sie durch das Debuggen eines unter Linux erfassten Speicherabbilds geführt.
Im Tutorial Debuggen von Deadlocks werden Sie durch das Debuggen eines Deadlocks in einer .NET-Anwendung mithilfe von Speicherabbildern geführt.