ProcDump v12.0

Von Mark Russinovich und Andrew Richards

Veröffentlicht: 7. Mai 2026

DownloadHerunterladen 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 notepad
    
  • Schreiben Sie ein vollständiges Speicherabbild eines Prozesses mit der PID „4572“:

    C:\>procdump -ma 4572
    
  • Schreiben Sie zuerst ein Mini- und dann ein vollständiges Abbild eines Prozesses mit PID „4572“:

    C:\>procdump -mm -ma 4572
    
  • Schreiben Sie drei Minidumps in Abständen von fünf Sekunden von einem Prozess mit dem Namen „notepad“.

    C:\>procdump -n 3 -s 5 notepad
    
  • Schreiben 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 consume
    
  • Schreiben 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.exe
    
  • Schreiben 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.exe
    
  • Schreiben 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" 20
    
  • Schreiben 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" 10000
    
  • Schreiben 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" 10000
    

    Hinweis: 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 #NNN eine 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.exe
    
  • Schreiben Sie einen vollständigen Speicherauszug für eine erst- oder zweitstufige Ausnahme.

    C:\>procdump -ma -e 1 w3wp.exe
    
  • Schreiben Sie ein vollständiges Abbild für eine Debugzeichenfolgenmeldung:

    C:\>procdump -ma -l w3wp.exe
    
  • Schreiben 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.exe
    
  • Schreiben 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.exe
    
  • Schreiben Sie bis zu zehn vollständige Dumps, wenn eine Debugzeichenfolge die Zeichenkette „NotFound“ enthält:

    C:\>procdump -ma -n 10 -l -f NotFound w3wp.exe
    
  • Warten Sie auf einen Prozess namens „notepad“ (und überwachen Sie ihn auf Ausnahmen):

    C:\>procdump -e -w notepad
    
  • Starten Sie einen Prozess namens „notepad“ (und überwachen Sie ihn auf Ausnahmen):

    C:\>procdump -e -x c:\dumps notepad
    
  • Registrieren 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!AppexMaps
    
  • Registrieren 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__8wekyb3d8bbwe
    
  • Schreiben Sie einen MiniPlus-Dump des Microsoft Exchange Information Store, wenn eine nicht behandelte Ausnahme auftritt.

    C:\>procdump -mp -e store.exe
    
  • Zeigen Sie die Ausnahmecodes/-namen von "w3wp.exe" an, ohne ein Speicherabbild zu erstellen.

    C:\>procdump -e 1 -f "" w3wp.exe
    
  • Windows 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.exe
    
  • Windows 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.exe
    
  • Installieren Sie ProcDump als Postmortem-Debugger (AeDebug):

    C:\>procdump -ma -i c:\dumps
    

    … oder …

    C:\Dumps>procdump -ma -i
    
  • Deinstallieren 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
  • 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.

DownloadHerunterladen 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