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.
Von Mark Russinovich und Andrew Richards
Veröffentlicht: 7. Mai 2026
Herunterladen ProcDump(1,2 MB)
ProcDump für Linux herunterladen (GitHub)
ProcDump für Mac herunterladen (GitHub)
Erstellt mit ZoomIt
Einführung
ProcDump ist ein Befehlszeilenprogramm, dessen Hauptzweck darin besteht, eine Anwendung auf CPU-Spitzen zu überwachen und Absturzabbilder während einer Spitze zu generieren, die ein Administrator oder Entwickler zur Ermittlung ihrer Ursache verwenden kann. ProcDump umfasst auch die Überwachung von hängenden Fenstern (mit der gleichen Definition für das Hängen eines Fensters, das von Windows und vom Task-Manager verwendet wird) sowie die Überwachung nicht behandelter Ausnahmen. Darüber hinaus kann ProcDump Abbilder basierend auf den Werten von Systemleistungsindikatoren generieren. ProcDump kann auch als allgemeines Hilfsprogramm zum Sichern von Prozessabbildern dienen, das Sie in andere Skripte einbetten können.
Verwenden von ProcDump
Erfassung der Nutzung:
procdump.exe [-mm] [-ma] [-mt] [-mp] [-mc <Mask>] [-md <Callback_DLL>] [-mk]
[-n <Count>]
[-s <Seconds>]
[-c|-cl <CPU_Usage> [-u]]
[-m|-ml <Commit_Usage>]
[-p|-pl <Counter> <Threshold>]
[-h]
[-e [1] [-g] [-b] [-ld] [-ud] [-ct] [-et]]
[-l]
[-t]
[-f <Include_Filter>, ...]
[-fx <Exclude_Filter>, ...]
[-dc <Comment>]
[-o]
[-r [1..5] [-a]]
[-at <Timeout>]
[-wer]
[-64]
{
{{[-w] <Process_Name> | <Service_Name> | <PID>} [<Dump_File> | <Dump_Folder>]}
|
{-x <Dump_Folder> <Image_File> [Argument, ...]}
}
Verwendung der Installation:
procdump.exe -i [Dump_Folder]
[-mm] [-ma] [-mt] [-mp] [-mc <Mask>] [-md <Callback_DLL>] [-mk]
[-r]
[-at <Timeout>]
[-k]
[-wer]
Deinstallieren der Verwendung:
procdump.exe -u
Speicherabbildtypen:
| Speicherabbildtyp | Beschreibung |
|---|---|
| -mm | Schreibt eine „Mini“-Abbilddatei. (Standard) – Enthält direkt und indirekt referenzierten Speicher (Stapel und deren Referenzen). – Enthält alle Metadaten (Prozess, Thread, Modul, Handle, Adressraum usw.). |
| -ma | Schreiben Sie eine „vollständige“ Speicherabbilddatei. – Umfasst den gesamten Arbeitsspeicher (Image, zugeordnet und privat). – Enthält alle Metadaten (Prozess, Thread, Modul, Handle, Adressraum usw.). |
| -mt | Schreibt eine „Triage“-Abbilddatei. – Enthält direkt referenzierten Arbeitsspeicher (Stacks). – Enthält eingeschränkte Metadaten (Prozess, Thread, Modul und Handle). – Es wird versucht, vertrauliche Informationen zu entfernen, dies kann jedoch nicht garantiert werden. |
| -mp | Schreibt eine „MiniPlus“-Abbilddatei. – Enthält den gesamten privaten Arbeitsspeicher sowie den gesamten Lese-/Schreib-Bild- oder zugeordneten Arbeitsspeicher. – Enthält alle Metadaten (Prozess, Thread, Modul, Handle, Adressraum usw.). – Um die Größe zu minimieren, wird der größte private Speicherbereich über 512 MB ausgeschlossen. Ein Speicherbereich wird als die Summe der Speicherbelegungen gleicher Größe definiert. Das Speicherabbild ist so detailliert wie ein Vollabbild, hat aber nur 10 bis 75 % von dessen Größe. – Hinweis: CLR-Prozesse werden aufgrund von Debugging-Beschränkungen als vollständig (-ma) gedumpt. |
| -mc | Schreibt eine „benutzerdefinierte“ Abbilddatei. – Enthält den Arbeitsspeicher und die Metadaten, die durch die angegebene MINIDUMP_TYPE-Maske (Hex) definiert sind. |
| -md | Schreibt eine „Rückruf“-Abbilddatei. – Enthält den Arbeitsspeicher, der von der Rückrufroutine „ MiniDumpWriteDump“ mit dem Namen „MiniDumpCallbackRoutine“ der angegebenen DLL definiert wird.– Enthält alle Metadaten (Prozess, Thread, Modul, Handle, Adressraum usw.). |
| -mk | Schreiben Sie ebenfalls eine „Kernel“-Abbilddatei. – Schließt die Kernel-Stacks der Threads im Prozess ein. – Das Betriebssystem unterstützt keinen Kernel-Dump ( -mk) bei Verwendung eines Klons (-r).– Bei der Verwendung mehrerer Abbildgrößen wird für jede Abbildgröße ein Kernelabbild erstellt. |
Bedingungen:
| Bedingung | Beschreibung |
|---|---|
| -a | Vermeiden Sie einen Ausfall. Erfordert -r. Wenn der Trigger bewirkt, dass das Ziel aufgrund eines überschrittenen Limits für gleichzeitige Speicherabbilder für längere Zeit angehalten wird, wird der Trigger übersprungen. |
| -at | Ausfall bei Timeout vermeiden. Die Sammlung des Triggers nach N Sekunden abbrechen. |
| -b | Debug-Haltepunkte als Ausnahmen behandeln (oder andernfalls ignorieren). |
| -c | CPU-Schwellenwert, ab dem ein Speicherabbild des Prozesses erstellt wird. |
| -cl | CPU-Schwellenwert, unter dem ein Speicherabbild des Prozesses erstellt wird. |
| -dc | Fügt die angegebene Zeichenfolge zum generierten Dump-Kommentar hinzu. |
| -e | Schreibt ein Abbild, wenn der Prozess auf eine unbehandelte Ausnahme stößt. Fügt „ 1“ ein, um ein Abbild bei Ausnahmen (erste Chance) zu erstellen.Um einen Speicherabbild zu erstellen, fügen Sie -ld hinzu, wenn beim Laden einer DLL (eines Moduls) die Filterung angewendet wird.Hinzufügen Sie -ud, um ein Speicherabbild zu erstellen, wenn eine DLL (Modul) entladen wird (Filterung wird angewendet).Fügen Sie -ct hinzu, um ein Abbild zu erstellen, wenn ein Thread gestartet wird.Fügen Sie -et hinzu, um ein Abbild zu erstellen, wenn ein Thread beendet wird. |
| -f | Filtern (einschließen) nach dem Inhalt von Ausnahmen, Debugprotokollierung und Dateinamen beim Laden/Entladen der DLL. Platzhalter (*) werden unterstützt. |
| -fx | Filtern (ausschließen) nach dem Inhalt von Ausnahmen, Debugprotokollierung und Dateinamen beim Laden/Entladen der DLL. Platzhalter (*) werden unterstützt. |
| -g | Ausführen als nativer Debugger in einem verwalteten Prozess (kein Interop). |
| -h | Abbilddatei schreiben, wenn der Prozess ein Fenster hat, das hängt (d. h. mindestens fünf Sekunden lang nicht auf Fensternachrichten reagiert). |
| -k | Prozess beenden nach dem Kopieren (-r) oder am Ende der Speicherabbildsammlung. |
| -l | Anzeigen der Debugprotokollierung des Prozesses. |
| -m | Arbeitsspeicher-Commit-Schwelle in MB, bei der ein Abbild erstellt werden soll. |
| -ml | Trigger, wenn die Arbeitsspeicherzuweisung unter den angegebenen MB-Wert fällt. |
| -n | Anzahl der Speicherabbilder, die geschrieben werden sollen, bevor beendet wird. |
| -o | Überschreiben einer vorhandenen Abbilddatei. |
| -p | Trigger, wenn der Leistungsindikator den angegebenen Schwellenwert erreicht oder überschreitet. Bei einigen Leistungsindikatoren und/oder Instanznamen kann die Groß- und Kleinschreibung relevant sein. |
| -pl | Trigger, wenn der Leistungsindikator den angegebenen Schwellenwert unterschreitet. |
| -r | Abbild mit einem Klon dumpen. Das gleichzeitige Limit ist optional (der Standard ist 1, das Maximum 5). Das Betriebssystem unterstützt kein Kernelabbild (-mk) bei Verwendung eines Klons (-r).
ACHTUNG: Ein hoher Parallelitätswert kann sich negativ auf die Systemleistung auswirken.– Windows 7: verwendet Reflektion. Das Betriebssystem unterstützt -e nicht.– Windows 8.0: verwendet Reflektion. Das Betriebssystem unterstützt -e nicht.– Windows 8.1 und höher: verwendet PSS. Alle Triggertypen werden unterstützt. |
| -s | Aufeinanderfolgende Sekunden vor dem Schreiben des Abbilds (der Standardwert lautet 10). |
| -t | Schreiben Sie ein Speicherabbild, wenn der Prozess beendet wird. |
| -u | Behandeln der CPU-Auslastung relativ zu einem einzelnen Kern (wird mit -c verwendet). |
| -v | NUR FÜR DEBUGGING: Ausführliche Ausgabe. |
| -w | Warten Sie, bis der angegebene Prozess gestartet wird, falls er nicht läuft. |
| -wer | Das (größte) Speicherabbild zur Windows-Fehlerberichterstattung in die Warteschlange einfügen. |
| -x | Starten Sie das angegebene Abbild mit optionalen Argumenten. Wenn es sich um eine Store-Anwendung oder ein -Paket handelt, startet ProcDump (nur) bei der nächsten Aktivierung. |
| -y | VERSTECKT: Aktivierung der Store-Anwendung. |
| -64 | Standardmäßig sichert ProcDump bei der Ausführung unter 64-Bit-Windows ein 32-Bit-Abbild eines 32-Bit-Prozesses. Diese Option wird außer Kraft gesetzt, um ein 64-Bit-Abbild zu sichern. Kann nur für das Debuggen des WOW64-Subsystems verwendet werden. |
Lizenzvereinbarung:
Verwenden Sie die Befehlszeilenoption „-accepteula“, um die Sysinternals-Lizenzvereinbarung automatisch zu akzeptieren.
Automatische Beendigung:
-cancel <Target Process PID>
Die Verwendung dieser Option oder das Festlegen eines Ereignisses mit dem Namen „ProcDump-<PID>“ ist identisch mit der Eingabe von STRG+C, um ProcDump ordnungsgemäß zu beenden. Eine sanfte Beendigung stellt sicher, dass der Prozess fortgesetzt wird, wenn eine Erfassung aktiv ist. Der Abbruch gilt für ALLE ProcDump-Instanzen, die den Prozess überwachen.
Dateiname:
Standardname der Dump-Datei: PROCESSNAME_YYMMDD_HHMMSS.dmp
Die folgenden Ersetzungen werden unterstützt:
| Ersetzung | Erklärung |
|---|---|
| PROCESSNAME | Prozessname |
| PID | Prozess-ID |
| EXCEPTIONCODE | Ausnahmecode |
| JJMMTT | Jahr/Monat/Tag |
| HHMMSS | Stunde/Minute/Sekunde |
Beispiele
Schreiben Sie ein Mini-Abbild eines Prozesses namens „notepad“ (es darf nur eine einzige Übereinstimmung existieren):
C:\>procdump notepadSchreiben Sie ein vollständiges Speicherabbild eines Prozesses mit der PID „4572“:
C:\>procdump -ma 4572Schreiben Sie zuerst ein Mini- und dann ein vollständiges Abbild eines Prozesses mit PID „4572“:
C:\>procdump -mm -ma 4572Schreiben Sie drei Minidumps in Abständen von fünf Sekunden von einem Prozess mit dem Namen „notepad“.
C:\>procdump -n 3 -s 5 notepadSchreiben Sie bis zu 3 Miniabbilder eines Prozesses mit dem Namen „consume“, wenn er für fünf Sekunden eine CPU-Auslastung von mehr als 20 % hat.
C:\>procdump -n 3 -s 5 -c 20 consumeSchreiben Sie einen Minidump für einen Prozess mit dem Namen „hang.exe“, wenn eines der Fenster länger als fünf Sekunden nicht reagiert.
C:\>procdump -h hang.exeSchreiben Sie ein vollständiges Speicherabbild und ein Kernel-Speicherabbild für einen Prozess mit dem Namen „hang.exe“, wenn eines seiner Fenster mehr als fünf Sekunden lang nicht reagiert:
C:\>procdump -ma -mk -h hang.exeSchreiben Sie ein Mini-Dump eines Prozesses namens „outlook“, wenn die CPU-Auslastung des Gesamtsystems für zehn Sekunden 20 % überschreitet.
C:\>procdump outlook -s 10 -p "\Processor(_Total)\% Processor Time" 20Schreiben Sie einen vollständigen Speicherauszug eines Prozesses mit dem Namen „outlook“, wenn die Anzahl der Handles von Outlook 10.000 übersteigt.
C:\>procdump -ma outlook -p "\Process(Outlook)\Handle Count" 10000Schreiben Sie ein vollständiges Abbild von „svchost“ PID 1234, Instanz #87, wenn die Handleanzahl 10.000 überschreitet:
C:\>procdump -ma 1234 -p "\Process(svchost#87)\Handle Count" 10000Hinweis: Indikatoren für mehrere Instanzen
Wenn mehrere Instanzen des Zählers vorhanden sind, müssen Sie den Namen und/oder die Instanznummer angeben.\Processor(NNN)\% Processor Time \Thermal Zone Information(<name>)\Temperature \Process(<name>[#NNN])\<counter>Bei älteren Betriebssystemen müssen Sie die PID für
\Process-Zähler anfügen.\Process(<name>[_PID])\<counter>Tipp: Verwenden Sie den Leistungsmonitor, um die Indikatoren anzuzeigen (insbesondere Groß-/Kleinschreibung).
Tipp: Verwenden Sie für\Process(*)-basierte Leistungsindikatoren PowerShell, um ihrem#NNNeine PID zuzuordnen.Get-Counter -Counter "\Process(*)\ID Process"Schreiben Sie ein vollständiges Dump für eine zweite-Chance-Ausnahme.
C:\>procdump -ma -e w3wp.exeSchreiben Sie einen vollständigen Speicherauszug für eine erst- oder zweitstufige Ausnahme.
C:\>procdump -ma -e 1 w3wp.exeSchreiben Sie ein vollständiges Abbild für eine Debugzeichenfolgenmeldung:
C:\>procdump -ma -l w3wp.exeSchreiben Sie bis zu zehn vollständige Speicherdumps für jede erste oder zweite Ausnahme von „w3wp.exe“:
C:\>procdump -ma -n 10 -e 1 w3wp.exeSchreiben Sie bis zu zehn vollständige Speicherabbilder, wenn der Code, der Name oder die Nachricht einer Ausnahme „
NotFound“ enthält.C:\>procdump -ma -n 10 -e 1 -f NotFound w3wp.exeSchreiben Sie bis zu zehn vollständige Dumps, wenn eine Debugzeichenfolge die Zeichenkette „
NotFound“ enthält:C:\>procdump -ma -n 10 -l -f NotFound w3wp.exeWarten Sie auf einen Prozess namens „notepad“ (und überwachen Sie ihn auf Ausnahmen):
C:\>procdump -e -w notepadStarten Sie einen Prozess namens „notepad“ (und überwachen Sie ihn auf Ausnahmen):
C:\>procdump -e -x c:\dumps notepadRegistrieren Sie sich für den Start, und versuchen Sie, eine Store-„Anwendung“ zu aktivieren. Beim Aktivieren wird eine neue ProcDump-Instanz gestartet:
C:\>procdump -e -x c:\dumps Microsoft.BingMaps_8wekyb3d8bbwe!AppexMapsRegistrieren Sie sich für den Start eines Store-„Pakets“. Beim (manuellen) Aktivieren wird eine neue ProcDump-Instanz gestartet:
C:\>procdump -e -x c:\dumps Microsoft.BingMaps_1.2.0.136_x64__8wekyb3d8bbweSchreiben Sie einen MiniPlus-Dump des Microsoft Exchange Information Store, wenn eine nicht behandelte Ausnahme auftritt.
C:\>procdump -mp -e store.exeZeigen Sie die Ausnahmecodes/-namen von "w3wp.exe" an, ohne ein Speicherabbild zu erstellen.
C:\>procdump -e 1 -f "" w3wp.exeWindows 7/8.0: Verwenden Sie Reflektion, um den Ausfall für fünf aufeinanderfolgende Trigger zu reduzieren:
C:\>procdump -r -ma -n 5 -s 15 wmplayer.exeWindows 8.1 und höher: Verwenden Sie PSS, um den Ausfall für fünf gleichzeitige Trigger zu reduzieren:
C:\>procdump -r 5 -ma -n 5 -s 15 wmplayer.exeInstallieren Sie ProcDump als Postmortem-Debugger (AeDebug):
C:\>procdump -ma -i c:\dumps… oder …
C:\Dumps>procdump -ma -iDeinstallieren Sie ProcDump als Postmortem-Debugger (AeDebug):
C:\>procdump -u
Lassen Sie sich eine Liste der Beispielbefehlszeilen anzeigen (die Beispiele sind oben aufgeführt):
C:\>procdump -? -e
Verwandte Links
- Windows Internals Buch Die offizielle Seite für Updates und Errata für das umfassende Buch „Windows Internals“, von Mark Russinovich und David Solomon.
- Windows Sysinternals Administrator’s Reference: Der offizielle Leitfaden zu den Sysinternals-Hilfsprogramme von Mark Russinovich und Aaron Margosis, einschließlich Beschreibungen aller Tools, ihrer Funktionen, wie sie für die Problembehandlung verwendet werden können, und Beispiele für reale Anwendungsfälle.
Herunterladen ProcDump(1,2 MB)
ProcDump für Linux herunterladen (GitHub)
ProcDump für Mac herunterladen (GitHub)
Läuft auf:
- Client: Windows 11 und höher.
- Server: Windows Server 2016 und höher.
Weitere Informationen
- Defragmentierungstools: #9 – ProcDump In dieser Folge über Defragmentierungstools wird beschrieben, was das Tool erfasst und welche erwarteten Ausfalldauern zu erwarten sind.
- Defragmentierungstools: #10 – ProcDump – Trigger In dieser Folge werden Triggeroptionen und insbesondere Ausnahmen (1. und 2. Chance) behandelt
- Defragmentierungstools: #11 – ProcDump – Windows 8 und Prozessmonitor In dieser Episode wird die Unterstützung moderner Anwendungen und der Prozessmonitorprotokollierung behandelt