So erfassen Sie einen Prozessabbild unter Windows, wenn er zufällig abstürzt
57372
Created On 05/22/22 12:47 PM - Last Modified 07/13/23 07:53 AM
Objective
In Szenarien, in denen der Prozess zufällig abstürzt, müssen wir ein spezielles Tool verwenden, das zufällige Prozess-Dumps erfasst. Proc Dump ist ein internes Microsoft Sys-Tool
, das wir zu diesem Zweck verwenden können
Environment
- Fenster OS
- Problembehandlung von Szenarien, Cortex XDR in denen der Prozess abstürzt
Procedure
Laden Sie Procdump herunter Microsoft Procdump
Procdump gibt den Speicher des Prozesses automatisch aus, wenn er abstürzt (vollständiger Prozess-Dump), wenn Sie die nächsten Schritte ausführen.
- Erstellen eines Ordners für Dumps
- Führen Sie den nächsten Befehl aus, in dem sich procdump.exe befindet: procdump -ma -i <der Ordner, in den ein Dump erstellt werden soll>
Zum Beispiel: procdump -ma -i c:\dumps
- Der Befehl procdump legt fest, dass procdump immer dann ausgeführt wird, wenn eine unbehandelte Ausnahme (ein Absturz) auftritt.
- Das bedeutet, dass jedes Mal, wenn ein Prozess abstürzt, ein Dump des Prozesses erstellt und im angegebenen Pfad gespeichert wird.
Additional Information
Palo Alto unterstützt das Tool nicht, Der Artikel wird für den Fall angegeben, dass Kunden dieses Tool nicht kennen, um den Prozessdump zu erfassen.
Verwendung: procdump [-a] [[-c|-cl CPU Verwendung] [-u] [-s Sekunden]] [-n überschreitet] [-e [1 [-b]] [-f <Filter,... >] [-g] [-h] [-l] [-m|-ml Commit-Verwendung] [-ma | -mp] [-o] [-p|-pl Zähler-Schwellenwert] [-r] [-t] [-d <Callback DLL->] [-64] <[-w] <Prozessname oder Dienstname oder PID> [Auszugsdatei] | -i <Auszugsdatei> | -u | -x <Auszugsdatei> <Bilddatei> [Argumente] >] [-? [ -e]
| Parameter | Beschreibung |
| -a | Vermeiden Sie Ausfälle. Benötigt -r. Wenn der Trigger dazu führt, dass das Ziel aufgrund eines überschrittenen Grenzwerts für gleichzeitige Speicherabbilder für längere Zeit angehalten wird, wird der Trigger übersprungen. |
| -bei | Vermeiden Sie einen Ausfall bei Timeout. Brechen Sie die Erfassung des Triggers in Sekunden ab N . |
| -b | Behandeln Sie Debug-Haltepunkte als Ausnahmen (andernfalls ignorieren Sie sie). |
| -c | CPU Schwellenwert, bei dem ein Dump des Prozesses erstellt werden soll. |
| -Cl | CPU Schwellenwert, unterhalb dessen ein Dump des Prozesses erstellt werden soll. |
| -d | Rufen Sie die Minidump-Rückrufroutine mit dem Namen MiniDumpCallbackRoutine der angegebenen DLL. |
| -e | Schreiben Sie einen Speicherauszug, wenn der Prozess auf eine nicht behandelte Ausnahme stößt. Schließen Sie die 1 ein, um bei Ausnahmen der ersten Chance einen Dump zu erstellen. |
| -f | Filtern Sie die Ausnahmen der ersten Chance. Wildcards (*) werden unterstützt. Um nur die Namen ohne Dumping anzuzeigen, verwenden Sie einen leeren ("") Filter. |
| -Fx | Filtern (Ausschließen) nach dem Inhalt von Ausnahmen und Debugprotokollierung. Platzhalter werden unterstützt. |
| -g | Wird als systemeigener Debugger in einem verwalteten Prozess ausgeführt (keine Interoperabilität). |
| -h | Write dump, wenn der Prozess ein hängendes Fenster hat (reagiert mindestens 5 Sekunden lang nicht auf Fenstermeldungen). |
| -i | Installieren Sie ProcDump als AeDebug-Post-Mortem-Debugger. Nur -ma, -mp, -d und -r werden als zusätzliche Optionen unterstützt. |
| -k | Beenden Sie den Prozess nach dem Klonen (-r) oder am Ende der Speicherabbildsammlung |
| -l | Zeigen Sie das Debug-Protokoll des Prozesses an. |
| -m | Speichercommit-Schwellenwert MB , bei dem ein Speicherabbild erstellt werden soll. |
| -ma | Schreiben Sie eine Speicherabbilddatei mit dem gesamten Prozessspeicher. Das standardmäßige Speicherabbildformat enthält nur Thread- und Handleinformationen. |
| -Mc | Schreiben Sie eine benutzerdefinierte Dump-Datei. Schließt Speicher ein, der durch die angegebene MINIDUMP_TYPE-Maske (Hexadezimal) definiert ist. |
| -Md | Schreiben Sie eine Callback-Dump-Datei. Schließen Sie den Speicher ein, der von der MiniDumpWriteDump-Rückrufroutine mit dem Namen MiniDumpCallbackRoutine der angegebenen DLL. |
| -Mk | Schreiben Sie auch eine Kernel-Dump-Datei. Schließt die Kernel-Stacks der Threads in den Prozess ein. OS unterstützt keinen Kernel-Dump (-mk), wenn ein Klon (-r) verwendet wird. Wenn Sie mehrere Dump-Größen verwenden, wird für jede Dump-Größe ein Kernel-Dump erstellt. |
| -ml | Wird ausgelöst, wenn der Speichercommit unter den angegebenen MB Wert fällt. |
| -Mm | Schreiben Sie eine Mini-Dump-Datei (Standard). |
| -mp | Schreiben Sie eine Speicherabbilddatei mit Thread- und Handle-Informationen sowie dem gesamten Prozessspeicher mit Lese-/Schreibzugriff. Um die Speicherauszugsgröße zu minimieren, wird nach Speicherbereichen gesucht, die größer als 512 MB sind, und wenn sie gefunden werden, wird der größte Bereich ausgeschlossen. A Der Speicherbereich ist die Sammlung von Speicherbelegungsbereichen gleicher Größe. Durch das Entfernen dieses (Cache-)Speichers werden Exchange- und SQL Server-Dumps um über 90 % reduziert. |
| -n | Anzahl der Dumps, die vor dem Beenden geschrieben werden sollen. |
| -o | Überschreiben Sie eine vorhandene Speicherabbilddatei. |
| -p | Trigger für den angegebenen Leistungsindikator, wenn der Schwellenwert überschritten wird. Hinweis: Um einen Prozesszähler anzugeben, wenn mehrere Instanzen des Prozesses ausgeführt werden, verwenden Sie den Prozess ID mit der folgenden Syntax: "\Process(<name>_<pid>)\counter" |
| -.pl | Wird ausgelöst, wenn der Leistungsindikator unter den angegebenen Wert fällt. |
| -r | Dump mit einem Klon. Das gleichzeitige Limit ist optional (Standard 1, max. 5). CAUTION: Ein hoher Parallelitätswert kann sich auf die Systemleistung auswirken. - Windows 7 : Verwendet Reflektion. OS unterstützt -e nicht. - Windows 8.0 : Verwendet Reflektion. OS unterstützt -e nicht. - Windows 8.1+: Verwendet PSS. Alle Triggertypen werden unterstützt. |
| -s | Aufeinanderfolgende Sekunden, bevor der Dump geschrieben wird (Standardwert ist 10). |
| -t | Schreiben Sie einen Speicherauszug, wenn der Prozess beendet wird. |
| -u | Behandeln Sie CPU die Verwendung relativ zu einem einzelnen Kern (wird mit -c verwendet). Als einzige Option wird ProcDump als Post-Mortem-Debugger deinstalliert. |
| -w | Warten Sie, bis der angegebene Prozess gestartet wird, wenn er nicht ausgeführt wird. |
| -wer | Stellen Sie den (größten) Speicherabzug in die Windows-Fehlerberichterstattung in die Warteschlange. |
| -x | Starten Sie das angegebene Image mit optionalen Argumenten. Wenn es sich um eine Store-Anwendung oder ein Store-Paket handelt, wird ProcDump (nur) bei der nächsten Aktivierung gestartet. |
| -64 | Standardmäßig erfasst ProcDump einen 32-Bit-Dump eines 32-Bit-Prozesses, wenn er unter 64-Bit-Windows ausgeführt wird. Diese Option wird überschrieben, um einen 64-Bit-Speicherabbild zu erstellen. Nur für das Debuggen des WOW64-Subsystems verwenden. |
| -? | Gebrauchen-? -e, um Beispielbefehlszeilen anzuzeigen. |
Flags der ProcDump-Option: