ProcDump v11.0
Von Mark Russinovich und Andrew Richards
Veröffentlicht am 03.11.2022
ProcDump herunterladen (714 KB)
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 Abbildern dienen, das Sie in andere Skripts einbetten können.
Verwenden von ProcDump
Erfassen der Verwendung:
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, ...]}
}
Installieren der Verwendung:
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
Abbildtypen:
Abbildtyp | Beschreibung |
---|---|
-mm | Schreibt eine „Mini“-Abbilddatei. (Standard) – Enthält direkt und indirekt referenzierten Arbeitsspeicher (Stapel und worauf sie referenzieren). – Enthält alle Metadaten (Prozess, Thread, Modul, Handle, Adressraum usw.). |
-ma | Schreibt eine „vollständige“ Abbilddatei. – 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 (Stapel). – 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 und das gesamten Lese-/Schreib-Image 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 Abbild ist so detailliert wie ein vollständiges, hat aber nur 10-75 % der Größe. – Hinweis: CLR-Prozesse werden aufgrund von Debuggingbeschränkungen als vollständig (-ma) angezeigt. |
-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 | Schreibt ebenfalls eine „Kernel“-Abbilddatei. – Schließt die Kernelstapel der Threads im Prozess ein. – Das Betriebssystem unterstützt kein Kernelabbild ( -mk ) bei Verwendung eines Klons (-r ).– Bei Verwendung mehrerer Abbildgrößen wird für jede von ihnen ein Kernelabbild erstellt. |
Bedingungen:
Bedingung | Beschreibung |
---|---|
-a | Vermeiden Sie einen Ausfall. Erfordert -r . Wenn der Trigger bewirkt, dass das Ziel aufgrund eines überschrittenen gleichzeitigen Abbildlimits für längere Zeit angehalten wird, wird der Trigger übersprungen. |
-at | Ausfall bei Timeout vermeiden. Auflistung des Triggers nach N Sekunden abbrechen. |
-b | Debug-Haltepunkte als Ausnahmen behandeln (oder andernfalls ignorieren). |
-c | CPU-Schwellenwert, über dem ein Speicherabbild des Prozesses erstellt wird. |
-cl | CPU-Schwellenwert, unter dem ein Speicherabbild des Prozesses erstellt wird. |
-dc | Fügt dem zum Abbild generierten Kommentar die angegebene Zeichenfolge hinzu. |
-e | Schreibt ein Abbild, wenn der Prozess auf eine nicht behandelte Ausnahme stößt. Fügt „ 1 “ ein, um ein Abbild bei Ausnahmen (erste Chance) zu erstellen.Fügt „ -ld “ hinzu, um ein Abbild zu erstellen, wenn eine DLL (Modul) geladen wird (Filterung wird angewendet).Fügt „ -ud “ hinzu, um ein Abbild zu erstellen, wenn eine DLL (Modul) entladen wird (Filterung wird angewendet).Fügt „ -ct “ hinzu, um ein Abbild zu erstellen, wenn ein Thread erstellt wird.Fügt „ -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 | Abbild schreiben, wenn der Prozess ein hängendes Fenster hat (d. h. mindestens fünf Sekunden lang nicht auf Fensternachrichten reagiert). |
-k | Beenden des Prozesses nach dem Klonen (-r ) oder am Ende der Abbildsammlung. |
-l | Anzeigen der Debugprotokollierung des Prozesses. |
-m | Grenze des Commitwerts des Arbeitsspeichers in MB, bei dem ein Abbild erstellt werden soll. |
-ml | Trigger, wenn der Arbeitsspeichercommit unter den angegebenen Wert in MB fällt. |
-n | Anzahl der Abbilder, die vor dem Beenden geschrieben werden sollen. |
-o | Überschreiben einer vorhandenen Abbilddatei. |
-p | Trigger, wenn der Leistungsindikator den angegebenen Schwellenwert erreicht oder überschreitet. Bei einigen Leistungsindikatoren und/oder Instanznamen muss möglicherweise die Groß-/Kleinschreibung beachtet werden. |
-pl | Trigger, wenn der Leistungsindikator den angegebenen Schwellenwert unterschreitet. |
-r | Sichern eines Abbilds mithilfe eines Klons. 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 eines Abbilds, wenn der Prozess beendet wird. |
-u | Behandeln der CPU-Auslastung relativ zu einem einzelnen Kern (wird mit -c verwendet). |
-v | NUR DEBUGGEN: Ausführliche Ausgabe. |
-w | Warten, bis der angegebene Prozess gestartet wird, wenn er nicht ausgeführt wird. |
-wer | Stellen des (größten) Abbilds in eine Warteschlange für Windows-Fehlerberichterstattung. |
-x | Starten des angegebene Images 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 ordnungsgemäße 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 Abbilddatei: PROCESSNAME_YYMMDD_HHMMSS.dmp
Die folgenden Ersetzungen werden unterstützt:
Substitution | 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 Übereinstimmung vorhanden sein):
C:\>procdump notepad
Schreiben Sie ein vollständiges Abbild eines Prozesses mit 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 Mini-Abbilder im Abstand von fünf Sekunden von einem Prozess mit dem Namen „notepad“:
C:\>procdump -n 3 -s 5 notepad
Schreiben Sie bis zu 3 Mini-Abbilder eines Prozesses mit dem Namen „consume“, wenn er eine CPU-Auslastung von 20 % für die Dauer von fünf Sekunden überschreitet:
C:\>procdump -n 3 -s 5 -c 20 consume
Schreiben Sie ein Mini-Abbild für einen Prozess mit dem Namen „hang.exe“, wenn eines seiner Fenster länger als fünf Sekunden nicht reagiert:
C:\>procdump -h hang.exe
Schreiben Sie ein vollständiges und ein Kernelabbild für einen Prozess mit dem Namen „hang.exe“, wenn eines seiner Fenster länger als fünf Sekunden nicht reagiert:
C:\>procdump -ma -mk -h hang.exe
Schreiben Sie ein Mini-Abbild eines Prozesses mit dem Namen „outlook“, wenn die CPU-Auslastung des Systems zehn Sekunden lang 20 % überschreitet:
C:\>procdump outlook -s 10 -p "\Processor(_Total)\% Processor Time" 20
Schreiben Sie ein vollständiges Abbild eines Prozesses mit dem Namen „outlook“, wenn die Handleanzahl von Outlook 10.000 überschreitet:
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 Indikators vorhanden sind, müssen Sie den Namen und/oder die Instanznummer einschließen.\Processor(NNN)\% Processor Time \Thermal Zone Information(<name>)\Temperature \Process(<name>[#NNN])\<counter>
Bei älteren Betriebssystemen müssen Sie die PID für „
\Process
“-Indikatoren 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 Abbild für eine Ausnahme (zweite Chance):
C:\>procdump -ma -e w3wp.exe
Schreiben Sie ein vollständiges Abbild für eine Ausnahme (erste oder zweite Chance):
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 Abbilder für jede Ausnahme von „w3wp.exe“ (erste oder zweite Chance):
C:\>procdump -ma -n 10 -e 1 w3wp.exe
Schreiben Sie bis zu zehn vollständige Abbilder, 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 Abbilder, wenn eine Debugzeichenfolgennachricht „
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 ein MiniPlus-Abbild des Microsoft Exchange-Informationsspeichers, wenn eine nicht behandelte Ausnahme vorliegt:
C:\>procdump -mp -e store.exe
Zeigen Sie die Ausnahmecodes/-namen von „w3wp.exe“ an, ohne ein Abbild zu schreiben:
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
Ähnliche Themen
- Buch: Windows Internals: Die offizielle Seite für Updates und Fehler 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.
ProcDump herunterladen (714 KB)
ProcDump für Linux herunterladen (GitHub)
ProcDump für Mac herunterladen (GitHub)
Läuft auf:
- Client: Windows 8.1 und höher.
- Server: Alle Windows Server 2012 (x64) und höher.
Weitere Informationen
- Defragmentierungstools: #9 – ProcDump In dieser Folge über Defragmentierungstools wird beschrieben, was das Tool erfasst und welche Ausfalldauer zu erwarten ist.
- 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