ProcDump v11.0
Von Mark Russinovich und Andrew Richards
Veröffentlicht: 03.11.2022
ProcDump(714 KB)
Herunterladen von ProcDump für Linux (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 verwenden kann, um die Ursache der Spitze zu ermitteln. ProcDump umfasst auch die Überwachung von hängenden Fenstern (mit der gleichen Definition eines Fensters, das von Windows und Task-Manager verwendet wird), eine nicht behandelte Ausnahmeüberwachung und kann Dumps basierend auf den Werten der Systemleistungsindikatoren generieren. Es kann auch als allgemeines Prozessabbildhilfsprogramm dienen, das Sie in andere Skripts einbetten können.
Verwenden von ProcDump
Nutzung erfassen:
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 installieren:
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
Dumptypen:
Dumptyp | BESCHREIBUNG |
---|---|
-Mm | Schreiben Sie eine Mini-Dumpdatei. (Standard) – Enthält direkt und indirekt referenzierten Arbeitsspeicher (Stapel und bezugsbezogene Elemente). - Enthält alle Metadaten (Prozess, Thread, Modul, Handle, Adressraum usw.). |
-Ma | Schreiben Sie eine "vollständige" Dumpdatei. – Umfasst den gesamten Arbeitsspeicher (Image, Mapped und Private). - Enthält alle Metadaten (Prozess, Thread, Modul, Handle, Adressraum usw.). |
-Mt | Schreiben Sie eine "Triage"-Dumpdatei. – Enthält direkt referenzierten Arbeitsspeicher (Stapel). – Enthält eingeschränkte Metadaten (Prozess, Thread, Modul und Handle). – Das Entfernen vertraulicher Informationen wird versucht, aber nicht garantiert. |
-Mp | Schreiben Sie eine MiniPlus-Dumpdatei. – Enthält den gesamten privaten Arbeitsspeicher und den gesamten Bild-/Schreibzugriff 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 Dump ist so detailliert wie ein vollständiges Dump, aber 10%-75% der Größe. Hinweis: CLR-Prozesse werden aufgrund von Debugbeschränkungen als vollständig (-ma) angezeigt. |
-Mc | Schreiben Sie eine "Benutzerdefinierte" Dumpdatei. – Enthält den Arbeitsspeicher und die Metadaten, die von der angegebenen MINIDUMP_TYPE Maske (Hex) definiert sind. |
-Md | Schreiben Sie eine Rückrufabbilddatei. – Enthält den Arbeitsspeicher, der von der MiniDumpWriteDump Rückrufroutine mit dem Namen MiniDumpCallbackRoutine der angegebenen DLL definiert wird.- Enthält alle Metadaten (Prozess, Thread, Modul, Handle, Adressraum usw.). |
-Mk | Schreiben Sie auch eine "Kernel"-Dumpdatei. – Schließt die Kernelstapel der Threads in den Prozess ein. – Betriebssystem unterstützt kein Kernelabbild ( -mk ) bei Verwendung eines Klons (-r ).– Bei Verwendung mehrerer Dumpgrößen wird für jede Dumpgröße ein Kernelabbild erstellt. |
Bedingungen:
Bedingung | Beschreibung |
---|---|
-a | Vermeiden Sie einen Ausfall. Erfordert -r . Wenn der Trigger bewirkt, dass das Ziel aufgrund eines überschrittenen gleichzeitigen Dumplimits für längere Zeit angehalten wird, wird der Trigger übersprungen. |
-Auf | Vermeiden Sie einen Ausfall bei Timeout. Brechen Sie die Auflistung des Triggers in Sekunden ab N . |
-b | Behandeln Sie Debug-Breakpoints als Ausnahmen (andernfalls ignorieren Sie sie). |
-c | CPU-Schwellenwert zum Erstellen eines Speicherabbilds des Prozesses. |
-Cl | CPU-Schwellenwert, unter dem ein Speicherabbild des Prozesses erstellt werden soll. |
-Dc | Fügen Sie dem generierten Dumpkommentar die angegebene Zeichenfolge hinzu. |
-e | Schreiben Sie ein Dump, wenn der Prozess auf eine nicht behandelte Ausnahme stößt. Fügen Sie den 1 ein, um das Dump bei Ausnahmen für die erste Chance zu erstellen.Fügen Sie hinzu -ld , um ein Dump zu erstellen, wenn eine DLL (Modul) geladen wird (Filterung gilt).Fügen Sie hinzu -ud , um ein Dump zu erstellen, wenn eine DLL (Modul) entladen wird (Filterung gilt).Fügen Sie hinzu -ct , um ein Dump zu erstellen, wenn ein Thread erstellt wird.Fügen Sie hinzu -et , um ein Dump 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 | Schreibabbild, wenn der Prozess über ein hängenes Fenster verfügt (antwortet mindestens 5 Sekunden lang nicht auf Fensternachrichten). |
-k | Beenden Sie den Prozess nach dem Klonen (-r ) oder am Ende der Dumpsammlung. |
-l | Zeigen Sie die Debugprotokollierung des Prozesses an. |
-m | Arbeitsspeichercommitwert in MB, bei dem ein Dump erstellt werden soll. |
-Ml | Trigger, wenn der Arbeitsspeichercommit unter den angegebenen MB-Wert fällt. |
-n | Anzahl der Dumps, die vor dem Beenden geschrieben werden sollen. |
-o | Überschreiben Sie eine vorhandene Dumpdatei. |
-p | Lösen Sie aus, wenn der Leistungsindikator den angegebenen Schwellenwert erreicht oder überschreitet. Bei einigen Leistungsindikatoren und/oder Instanznamen kann die Groß-/Kleinschreibung beachtet werden. |
-Pl | Lösen Sie aus, wenn der Leistungsindikator unter den angegebenen Schwellenwert fällt. |
-r | Dumpen mithilfe eines Klons. Das gleichzeitige Limit ist optional (Standard 1, max. 5). Betriebssystem unterstützt kein Kernelabbild (-mk ) bei Verwendung eines Klons (-r ). ACHTUNG: Ein hoher Parallelitätswert kann sich auf die Systemleistung auswirken.- Windows 7: Verwendet Reflektion. Betriebssystem unterstützt -e nicht .- Windows 8.0: Verwendet Reflektion. Betriebssystem unterstützt -e nicht .- Windows 8.1+: Verwendet PSS. Alle Triggertypen werden unterstützt. |
-s | Aufeinanderfolgende Sekunden vor dem Schreiben des Dumps (Standardwert ist 10). |
-t | Schreiben Sie ein Dump, wenn der Prozess beendet wird. |
-u | Behandeln sie die CPU-Auslastung relativ zu einem einzelnen Kern (verwendet mit -c ). |
-v | NUR DEBUGGEN: Ausführliche Ausgabe. |
-w | Warten Sie, bis der angegebene Prozess gestartet wird, wenn er nicht ausgeführt wird. |
-wer | Stellen Sie das (größte) Dump in eine Warteschlange Windows-Fehlerberichterstattung. |
-x | Starten Sie das angegebene Image mit optionalen Argumenten. Wenn es sich um eine Store-Anwendung oder ein Paket handelt, startet ProcDump bei der nächsten Aktivierung (nur). |
-Y | VERSTECKTE: Speicheranwendungsaktivierung. |
-64 | Standardmäßig erfasst ProcDump bei der Ausführung unter 64-Bit-Windows ein 32-Bit-Dump eines 32-Bit-Prozesses. Diese Option wird außer Kraft gesetzt, um ein 64-Bit-Dump zu erstellen. Verwenden Sie nur für das Debuggen des WOW64-Subsystems. |
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:
Standardabbilddateiname: 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 Miniabbild eines Prozesses namens "Editor" (nur eine Übereinstimmung kann vorhanden sein):
C:\>procdump notepad
Schreiben Sie ein vollständiges Abbild eines Prozesses mit PID "4572":
C:\>procdump -ma 4572
Schreiben Sie zuerst einen Mini und dann ein vollständiges Abbild eines Prozesses mit PID "4572":
C:\>procdump -mm -ma 4572
Schreiben Sie 3 Miniabbilder im Abstand von 5 Sekunden von einem Prozess mit dem Namen "Editor":
C:\>procdump -n 3 -s 5 notepad
Schreiben Sie bis zu 3 Minidumps eines Prozesses mit dem Namen "verbrauchen", wenn er eine CPU-Auslastung von 20 % für fünf Sekunden überschreitet:
C:\>procdump -n 3 -s 5 -c 20 consume
Schreiben Sie ein Minidump für einen Prozess namens "hang.exe", wenn eines der Fenster länger als 5 Sekunden nicht reagiert:
C:\>procdump -h hang.exe
Schreiben Sie ein Vollständiges und Kernelabbild für einen Prozess namens "hang.exe", wenn eines der Fenster länger als 5 Sekunden nicht reagiert:
C:\>procdump -ma -mk -h hang.exe
Schreiben Sie ein Miniabbild eines Prozesses mit dem Namen "outlook", wenn die cpu-Auslastung des Systems 20 % für 10 Sekunden ü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 Dump 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
Leistungsindikatoren anfügen.\Process(<name>[_PID])\<counter>
Tipp: Verwenden Sie Leistungsmonitor, um die Indikatoren anzuzeigen (insbesondere Groß-/Kleinschreibung).
Tipp: Verwenden\Process(*)
Sie für basierte Leistungsindikatoren PowerShell, um eine PID ihrem#NNN
zuzuordnen.Get-Counter -Counter "\Process(*)\ID Process"
Schreiben Sie ein vollständiges Abbild für eine Ausnahme mit der 2. Chance:
C:\>procdump -ma -e w3wp.exe
Schreiben Sie ein vollständiges Dump für eine Ausnahme mit der 1. oder 2. 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 10 vollständige Abbildbilder für jede Ausnahme der 1. oder 2. Chance von w3wp.exe:
C:\>procdump -ma -n 10 -e 1 w3wp.exe
Schreiben Sie bis zu 10 vollständige Abbildbilder, wenn code/name/msg einer Ausnahme ""
NotFound
enthält:C:\>procdump -ma -n 10 -e 1 -f NotFound w3wp.exe
Schreiben Sie bis zu 10 vollständige Abbildbilder, wenn eine Debugzeichenfolgennachricht ""
NotFound
enthält:C:\>procdump -ma -n 10 -l -f NotFound w3wp.exe
Warten Sie auf einen Prozess namens "Editor" (und überwachen Sie ihn auf Ausnahmen):
C:\>procdump -e -w notepad
Starten Sie einen Prozess namens "Editor" (und überwachen Sie ihn auf Ausnahmen):
C:\>procdump -e -x c:\dumps notepad
Registrieren Sie sich für den Start, und versuchen Sie, eine Speicheranwendung zu aktivieren. Eine neue ProcDump-Instanz wird gestartet, wenn sie aktiviert wird:
C:\>procdump -e -x c:\dumps Microsoft.BingMaps_8wekyb3d8bbwe!AppexMaps
Registrieren Sie sich für den Start eines Speicherpakets. Eine neue ProcDump-Instanz wird gestartet, wenn sie (manuell) aktiviert wird:
C:\>procdump -e -x c:\dumps Microsoft.BingMaps_1.2.0.136_x64__8wekyb3d8bbwe
Schreiben Sie ein MiniPlus-Dump des Microsoft Exchange-Informationsspeichers, wenn eine nicht behandelte Ausnahme vorliegt:
C:\>procdump -mp -e store.exe
Anzeigen, ohne einen Dump zu schreiben, die Ausnahmecodes/-namen von w3wp.exe:
C:\>procdump -e 1 -f "" w3wp.exe
Windows 7/8.0; Verwenden Sie Reflektion, um den Ausfall für 5 aufeinanderfolgende Trigger zu reduzieren:
C:\>procdump -r -ma -n 5 -s 15 wmplayer.exe
Windows 8.1+; Verwenden Sie PSS, um den Ausfall für 5 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
Sehen Sie sich eine Liste der Beispielbefehlszeilen an (die Beispiele sind oben aufgeführt):
C:\>procdump -? -e
Ähnliche Themen
- Buch "Windows Internals" Die offizielle Update- und Errata-Seite für das endgültige Buch über Windows-Internaten, von Mark Russinovich und David Solomon.
- Windows Sysinternals-Administratorreferenz Der offizielle Leitfaden zu den Sysinternals-Dienstprogrammen von Mark Russinovich und Aaron Margosis, einschließlich Beschreibungen aller Tools, ihrer Features, ihrer Verwendung für die Problembehandlung und Beispiele für ihre Verwendung in der Praxis.
ProcDump(714 KB)
Herunterladen von ProcDump für Linux (GitHub)
Wird ausgeführt für:
- Client: Windows 8.1 und höher.
- Server: Windows Server 2012 und höher.
Weitere Informationen
- Defragmentierungstools: #9 – ProcDump In dieser Episode der Defragmentierungstools werden die Vom Tool erfassten und erwarteten Ausfalldauern behandelt.
- Defragmentierungstools: #10 – ProcDump – Trigger Diese Episode behandelt Triggeroptionen, insbesondere Ausnahmen für die 1. & 2. Chance
- Defragment tools: #11 - ProcDump - Windows 8 & Process Monitor Diese Episode behandelt moderne Anwendungsunterstützung und Prozessmonitorprotokollierungsunterstützung