.dump (Absturzbericht erstellen)
Der Befehl .dump erstellt einen Crash-Dump-File (Absturzbericht) für den Benutzer- oder Kernelmodus.
.dump [options] FileName
.dump /?
Parameter
Optionen
Steht für eine oder mehrere der folgenden Optionen.
/a
Erstellt Dumps für alle Prozesse (erfordert -u).
/b[a]
Packt den Dump in ein CAB und löscht den Dump. Zusätzliche Informationen sind enthalten, wenn die Option a angegeben ist.
/c <comment>
Fügt einen Kommentar hinzu (nicht in allen Formaten unterstützt).
/j <addr>
Gibt eine JIT_DEBUG_INFO-Adresse an.
/o
Überschreibt eine bestehende Dumpdatei mit demselben Namen. Wenn diese Option nicht verwendet wird und es eine Datei mit demselben Dateinamen gibt, wird die Dumpdatei nicht geschrieben.
/u
Hängt eine eindeutige Kennung an den Dumpnamen an.
/f[FullOptions]
(Kernelmodus:) Erzeugt einen vollständigen Dump des Speichers.
(Benutzermodus:) Nicht unterstützt. Zuvor wurde mit dieser Option ein vollständiger Benutzermodus-Dump erstellt, der ein älteres Format mit weniger Informationen als das neuere Minidump-Format ist. Für weitere Informationen, siehe Arten von Dumpdateien im Benutzermodus.
Sie können die folgenden FullOptions hinzufügen, um den Inhalt der Dumpdatei zu ändern; die Option unterscheidet zwischen Groß- und Kleinschreibung.
FullOption | Effekt |
---|---|
y | Fügt der Dumpdatei AVX-Registerinformationen hinzu. |
/m[MiniOptions]
Erstellt einen kleinen Speicherdump (im Kernelmodus) oder einen Minidump (im Benutzermodus). Weitere Informationen finden Sie unter Dumpdateien im Benutzermodus. Wenn weder /f noch /m angegeben ist, ist /m der Standard.
Im Benutzermodus können nach /m zusätzliche MiniOptionen folgen, die zusätzliche Daten angeben, die in den Dump aufgenommen werden sollen. Wenn keine MiniOptionen enthalten sind, enthält der Dump Modul-, Thread- und Stack-Informationen, aber keine weiteren Daten. Sie können jede der folgenden MiniOptionen hinzufügen, um den Inhalt der Dumpdatei zu ändern; dabei wird zwischen Groß- und Kleinschreibung unterschieden.
MiniOption | Effek |
---|---|
a | Erzeugt einen Minidump mit allen optionalen Zusätzen. Die Option /ma entspricht /mfFhut -- sie fügt dem Minidump vollständige Speicherdaten, Handle-Daten, Informationen über entladene Module, grundlegende Speicherinformationen und Informationen zur Thread-Zeit hinzu. Jeder Fehler beim Lesen von unzugänglichem Speicher führt zum Abbruch der Minidump-Erstellung. |
A | Die Option /mA entspricht der Option /ma, mit dem Unterschied, dass sie jeden Fehler beim Lesen von unzugänglichem Speicher ignoriert und weiterhin den Minidump erzeugt. |
f | Fügt dem Minidump vollständige Speicherdaten hinzu. Alle zugänglichen engagierten Seiten, die der Zielanwendung gehören, werden einbezogen. |
Fr | Fügt alle grundlegenden Speicherinformationen zum Minidump hinzu. Dies fügt dem Minidump einen Stream hinzu, der alle grundlegenden Speicherinformationen enthält, nicht nur Informationen über gültigen Speicher. Dadurch kann der Debugger das komplette Layout des virtuellen Speichers des Prozesses nachbilden, wenn der Minidump debuggt wird. |
h | Fügt dem Minidump Daten über die mit der Zielanwendung verbundenen Handles hinzu. |
n | Fügt dem Minidump Informationen über nicht entladene Module hinzu. |
t | Fügt dem Minidump zusätzliche Thread-Informationen hinzu. Dazu gehören auch die Thread-Zeiten, die mit der Erweiterung !runaway oder dem Befehl .ttime (Display Thread Times) beim Debuggen des Minidumps angezeigt werden können. |
i | Fügt dem Minidump sekundären Speicher hinzu. Als Sekundärspeicher wird jeder Speicher bezeichnet, auf den ein Pointer auf dem Stack oder Backing Store verweist, sowie ein kleiner Bereich um diese Adresse herum. |
p | Fügt dem Minidump Prozessumgebungsblock (PEB)- und Threadumgebungsblock (TEB)-Daten hinzu. Dies kann nützlich sein, wenn Sie Zugriff auf Windows-Systeminformationen über die Prozesse und Threads der Anwendung benötigen. |
a | Fügt alle übertragenen privaten Seiten mit Lese- und Schreibzugriff zum Minidump hinzu. |
d | Fügt dem Minidump alle lesbaren und schreibbaren Datensegmente innerhalb des ausführbaren Images hinzu. |
c | Fügt Codeabschnitte innerhalb von Bildern hinzu. |
r | Löscht aus dem Minidump die Teile des Stacks und des Speichers, die für die Wiederherstellung der Ablaufverfolgung nicht nützlich sind. Lokale Variablen und andere Werte vom Datentyp werden ebenfalls gelöscht. Diese Option verkleinert den Minidump nicht (da diese Speicherbereiche einfach auf Null gesetzt werden), aber sie ist nützlich, wenn Sie die Privatsphäre anderer Anwendungen schützen möchten. |
R | Löscht die vollständigen Modulpfade aus dem Minidump. Es werden nur die Modulnamen aufgenommen. Diese Option ist nützlich, wenn Sie die Privatsphäre der Verzeichnisstruktur des Benutzers schützen möchten. |
j | Fügt der Dumpdatei AVX-Registerinformationen hinzu. |
Optionen für den Kernelmodus
Die folgenden Optionen sind im Kernelmodus verfügbar.
/k
Erstellt einen Dump nur mit dem Kernelspeicher.
/ka
Erstellt einen Dump mit aktivem Kernel- und Benutzermodus-Speicher.
Zusätzliche Informationen
Eine Beschreibung von Dumpdateien im Kernelmodus und eine Erklärung ihrer Verwendung finden Sie unter Dumpdateien im Kernelmodus. Eine Beschreibung der Dumpdateien im Benutzermodus und eine Erklärung ihrer Verwendung finden Sie unter Dumpdateien im Benutzermodus.
Hinweise
Dieser Befehl kann in einer Vielzahl von Situationen verwendet werden:
Während des Debuggens im Live-Benutzermodus weist dieser Befehl die Zielanwendung an, eine Dumpdatei zu erzeugen, aber die Zielanwendung wird nicht beendet.
Während des Live-Debugging im Kernelmodus weist dieser Befehl den Zielcomputer an, eine Dumpdatei zu erzeugen, aber der Zielcomputer stürzt nicht ab.
Während der Fehlersuche mit einem Crash-Dump erstellt dieser Befehl eine neue Dumpdatei aus der alten. Dies ist nützlich, wenn Sie eine große Dumpdatei haben und eine kleinere Datei erstellen möchten.
Sie können festlegen, welche Art von Dumpdatei erzeugt werden soll:
Im Kernelmodus verwenden Sie die Option /f, um einen vollständigen Speicherauszug zu erstellen. Um einen kleinen Speicherauszug zu erstellen, verwenden Sie die Option /m (oder keine Optionen). Der Befehl .dump kann keinen Kernelspeicher-Dump erzeugen.
Im Benutzermodus ist .dump /mMiniOptions] die beste Wahl. Obwohl „m“ für „Minidump“ steht, können die Dumpdateien, die mit dieser MiniOption erstellt werden, von sehr klein bis sehr groß sein. Indem Sie die richtigen MiniOptionen angeben, können Sie genau steuern, welche Informationen enthalten sind. Beispiel: .dump /ma erzeugt einen Dump mit einer großen Menge an Informationen. Der ältere Befehl, .dump /f, erzeugt eine mäßig große „Standard-Dumpdatei“ und kann nicht angepasst werden.
Sie können nicht angeben, welcher Prozess beendet werden soll. Alle laufenden Prozesse werden beendet.
Die Optionen /xc, /xr, /xp und /xt werden verwendet, um Ausnahme- und Kontextinformationen in der Dumpdatei zu speichern. Das erlaubt dem Befehl .ecxr (Kontextdatensatz für Ausnahmen anzeigen), für diese Dumpdatei ausgeführt werden.
Das folgende Beispiel erstellt einen Minidump im Benutzermodus, der alle Speicher- und Handle-Informationen enthält:
0:000> .dump /mfh myfile.dmp
Handle-Informationen können mit dem Erweiterungsbefehl !handle ausgelesen werden.