Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In diesem Artikel erhalten Sie eine Übersicht über Dump-Dateien für den Benutzermodus und deren Verwendung zur Behebung von Fehlern und Abstürzen.
Informationen zum Analysieren einer Speicherabbilddatei finden Sie unter Analysieren einer Abbilddatei im Benutzermodus.
Typen von Dumpdateien für Benutzermodus
Es stehen mehrere Arten von Absturzabbilddateien für den Benutzermodus zur Verfügung. Die verschiedenen Typen von Dumpdateien sind in zwei Kategorien unterteilt:
Sie können eine erhebliche Menge an Informationen abrufen, indem Sie eine Speicherabbilddatei analysieren. Es kann jedoch keine Dump-Datei die Menge an Informationen bereitstellen, die Sie beim Debuggen des Absturzes mit einem Debugger erhalten.
Vollständige Benutzermodusabbilder
Ein vollständiges Benutzermodus-Dump ist die grundlegende Dump-Datei für den Benutzermodus. Eine vollständige Abbilddatei für den Benutzermodus umfasst:
- Der gesamte Speicherplatz eines Prozesses.
- Das ausführbare Image des Programms.
- Die Ziehpunkttabelle.
- Weitere Informationen, mit denen der Debugger den Speicher rekonstruieren kann, der beim Auftreten des Dumps verwendet wurde.
Sie können eine vollständige Dumpdatei im Benutzermodus in einen Minidump verkleinern. Um eine vollständige Speicherabbilddatei für den Benutzermodus zu verkleinern, laden Sie sie zuerst im Debugger. Verwenden Sie dann den Befehl .dump (Create Dump File), um eine neue Speicherabbilddatei im Minidumpformat zu speichern.
Trotz der Bezeichnung enthält die größte Minidumpdatei mehr Informationen als die vollständige Benutzermodus-Dumpdatei. Beispielsweise erstellen die Befehle .dump /mf und .dump /ma größere und vollständigere Dateien als der Befehl .dump /f.
Im Benutzermodus .dump /mist [MiniOptions] häufig die beste Wahl. Die mit diesem Switch erstellten Speicherabbilddateien können in der Größe von sehr klein bis sehr groß variieren. Durch Angeben des richtigen MiniOptions-Schalters können Sie genau steuern, welche Informationen enthalten sind.
Minidumps
Die Größe und der Inhalt einer Minidumpdatei variieren je nach dem programmgesteuerten Dump, der Anwendung, die das Dumping ausführt, und den ausgewählten Optionen. Manchmal ist eine Minidumpdatei moderat groß und enthält den vollständigen Arbeitsspeicher und die Handle-Tabelle. In anderen Zeiten ist die Minidumpdatei viel kleiner. Eine Minidumpdatei kann z. B. nur Informationen zu einem einzelnen Thread enthalten, oder sie enthält nur Informationen zu Modulen, auf die im Stapel verwiesen wird.
Der Begriff Minidump ist irreführend, da die größten Minidumpdateien mehr Informationen enthalten als eine vollständige Abbilddatei für den Benutzermodus. Beispielsweise .dump /mf oder .dump /ma erstellt eine größere und umfassendere Datei als .dump /f. Aus diesem Grund empfehlen wir, .dump /m[MiniOptions] anstelle von .dump /f zu verwenden, um alle Abbilddateien für den Benutzermodus zu erstellen.
Wenn Sie mithilfe des Debuggers eine Minidumpdatei erstellen, können Sie auswählen, welche Informationen einbezogen werden sollen. Der .dump /m Befehl enthält grundlegende Informationen zu den geladenen Modulen, aus denen der Zielprozess, Threadinformationen und Stapelinformationen bestehen. Sie können den grundlegenden Befehl mithilfe einer der folgenden Optionen ändern:
Option .dump |
Auswirkung auf die Speicherabbilddatei |
|---|---|
/ma |
Erstellt einen Minidump mit allen optionalen Ergänzungen. Die /ma Option ist gleichbedeutend mit /mfFhut. Sie fügt vollständige Speicherdaten hinzu, behandelt Daten, entladene Modulinformationen, grundlegende Speicherinformationen und Threadzeitinformationen zum Minidump. |
/mf |
Fügt dem Minidump vollständige Speicherdaten hinzu. Alle barrierefreien zugesicherten Seiten, die der Zielanwendung gehören, sind enthalten. |
/mF |
Fügt dem Minidump alle grundlegenden Speicherinformationen hinzu. Dieser Switch fügt dem Minidump einen Datenstrom hinzu, der alle grundlegenden Speicherinformationen enthält, nicht nur Informationen zum gültigen Arbeitsspeicher. Der Debugger verwendet die Informationen, um das vollständige virtuelle Speicherlayout des Prozesses zu rekonstruieren, wenn der Minidump gedebuggt wird. |
/mh |
Fügt dem Minidump Daten zu den Handles hinzu, die der Zielanwendung zugeordnet sind. |
/mu |
Fügt dem Minidump ungeladene Modulinformationen hinzu. Diese Option ist nur in Windows Server 2003 und höheren Versionen von Windows verfügbar. |
/mt |
Fügt dem Minidump weitere Threadinformationen hinzu. Die Threadinformationen enthalten Threadzeiten, die Beim Debuggen des Minidumps mithilfe von TTIME (Anzeigethreadzeiten) angezeigt werden können. |
/mi |
Fügt dem Minidump sekundären Speicher hinzu. Sekundärer Speicher ist jeder Speicher, auf den ein Zeiger im Stapel oder sicherungsspeicher verweist, sowie eine kleine Region, die diese Adresse umgibt. |
/mp |
Fügt dem Minidump Daten des Prozessumgebungsblocks und des Threadumgebungsblocks hinzu. Diese Informationen können nützlich sein, wenn Sie Zugriff auf Windows-Systeminformationen zu den Prozessen und Threads der Anwendung benötigen. |
/mw |
Fügt alle zugesicherten privaten Seiten mit Lese-/Schreibzugriff zum Minidump hinzu. |
/md |
Fügt alle Lese-/Schreibdatensegmente innerhalb des ausführbaren Images zum Minidump hinzu. |
/mc |
Fügt Codeabschnitte in Bildern hinzu. |
/mr |
Löscht aus dem Stapel und dem gespeicherten Speicher des Minidumps Teile, die nicht zum erneuten Erstellen der Stapelablaufverfolgung verwendet werden. Lokale Variablen und andere Datentypwerte werden ebenfalls gelöscht. Diese Option macht den Minidump nicht kleiner (die nicht verwendeten Speicherabschnitte sind null), aber es ist nützlich, wenn Sie die Privatsphäre anderer Anwendungen schützen möchten. |
/mR |
Löscht die vollständigen Modulpfade aus dem Minidump. Es sind nur Modulnamen enthalten. Diese Option ist nützlich, wenn Sie die Privatsphäre der Verzeichnisstruktur des Benutzers schützen möchten. |
Sie können diese Schalteroptionen kombinieren. Verwenden Sie beispielsweise den Befehl .dump /mfiu , um einen moderaten großen Minidump zu erstellen, der entladenen und sekundären Arbeitsspeicher enthält. Verwenden Sie den Befehl .dump /mrR , um einen Minidump zu erstellen, der einige der Benutzerinformationen entfernt. Vollständige Syntaxdetails finden Sie unter .dump (Create Dump File).
Werkzeuge zum Erstellen einer Speicherabbilddatei
Sie können verschiedene Tools verwenden, um eine Abbilddatei für den Benutzermodus zu erstellen:
ProcDump
ProcDump ist ein Befehlszeilen-Dienstprogramm, mit dem Sie eine Anwendung auf CPU-Spitzen überwachen und Absturzabbilder bei einer Spitze generieren können. Ein Administrator oder Entwickler kann die Absturzabbilddateien verwenden, um die Ursache des plötzlichen Anstiegs zu ermitteln. ProcDump umfasst auch die Überwachung von hängenden Fenstern (mithilfe der von Windows und dem Task-Manager verwendeten Definition eines Fensterhängens) und unbehandelten Ausnahmen. Sie können ProcDump verwenden, um Abbilder basierend auf den Werten der Systemleistungsindikatoren zu generieren. ProcDump kann auch als allgemeines Prozessabbildprogramm dienen, das Sie in andere Skripts einbetten können.
Informationen zum Erstellen einer Abbilddatei für den Benutzermodus mithilfe des Dienstprogramms Sysinternals ProcDump finden Sie unter ProcDump.
WinDbg und CDB
Konsolendebugger (CDB) und Windows Debugger (WinDbg) sind Debuggingtools, die in Windows Software Development Kit und Windows Driver Kit enthalten sind. Informationen zu den Installationsoptionen finden Sie unter "Herunterladen und Installieren des WinDbg Windows-Debuggers".
Sie können CDB oder WinDbg verwenden, um Abbilddateien für den Benutzermodus auf mehrere Arten zu erstellen:
- Erstellen Sie automatisch eine Speicherabbilddatei.
- Erstellen Sie Speicherabbilddateien, wenn Sie debuggen.
- Verkleinern einer vorhandenen Speicherabbilddatei.
Weitere Informationen zu den Tools finden Sie unter "Erste Schritte mit Dem Windows-Debuggen und Debuggen mithilfe von CDB".
Automatisches Erstellen einer Dumpdatei
Wenn ein Anwendungsfehler auftritt, reagiert Windows je nach den Einstellungen für das Postmortem-Debugging möglicherweise auf eine von mehreren Arten. Wenn diese Einstellungen ein Debuggingtool zum Erstellen einer Speicherabbilddatei anweisen, wird eine Speicherabbilddatei für den Benutzermodus erstellt. Weitere Informationen finden Sie unter Aktivieren des Postmortem-Debuggings.
Erstellen von Dumpdateien beim Debuggen
Wenn CDB oder WinDbg eine Benutzermodus-Anwendung debuggen, können Sie auch den Befehl .dump (Create Dump File) verwenden, um eine Speicherabbilddatei zu erstellen.
Dieser Befehl bewirkt nicht, dass die Zielanwendung beendet wird. Durch Auswählen bestimmter Befehlsoptionen können Sie eine Minidumpdatei erstellen, die genau die gewünschte Menge an Informationen enthält.
Verkleinern einer vorhandenen Speicherabbilddatei
Sie können CDB oder WinDbg verwenden, um eine Speicherabbilddatei zu verkleinern. Um eine Dumpdatei zu verkleinern, beginnen Sie mit dem Debuggen einer vorhandenen Dumpdatei. Verwenden Sie dann den .dump Befehl, um eine Dumpdatei mit einer kleineren Größe zu erstellen.
Zeitreise-Debugging
Eine weitere Option zum Debuggen von Anwendungen im Benutzermodus ist Time Travel Debugging (TTD). TTD ist ein Tool, mit dem Sie ihren Prozess aufzeichnen können, während er ausgeführt wird. Sie können die Aufzeichnung der Debuggersitzung wiedergeben, um den Fehler zu finden. Sie können ganz einfach zu verschiedenen Teilen der Aufzeichnung wechseln, um Bedingungen zu verstehen, die zu dem Fehler geführt haben und wie Sie das Problem beheben können.
TTD hat erhebliche Vorteile gegenüber Absturzabbilddateien, die häufig die Codeausführung fehlen, die zu dem Fehler führte. Die Möglichkeit, in der Codeausführung rückwärts zu reisen, kann nützlich sein, um die Ursache zu bestimmen.
Weitere Informationen finden Sie in der Übersicht über das Time Travel Debugging.
Siehe auch
- Erfahren Sie, wie Sie eine Benutzermodus-Dump-Datei analysieren.
- Hier erhalten Sie Tipps zum Extrahieren von Informationen aus einer Speicherabbilddatei.