ProcDump v11.0
Door Mark Russinovich en Andrew Richards
Gepubliceerd: 11-03-2022
ProcDump downloaden (714 KB)
ProcDump voor Linux downloaden (GitHub)
Gemaakt met ZoomIt
Inleiding
ProcDump is een opdrachtregelprogramma waarvan het primaire doel een toepassing voor CPU-pieken bewaakt en crashdumps genereert tijdens een piek die een beheerder of ontwikkelaar kan gebruiken om de oorzaak van de piek te bepalen. ProcDump bevat ook bewaking van vastgelopen vensters (met dezelfde definitie van een venster dat door Windows en Taakbeheer wordt gebruikt), niet-verwerkte uitzonderingsbewaking en kan dumps genereren op basis van de waarden van systeemprestatiemeteritems. Het kan ook fungeren als een algemeen hulpprogramma voor procesdump dat u in andere scripts kunt insluiten.
ProcDump gebruiken
Gebruik vastleggen:
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, ...]}
}
Gebruik installeren:
procdump.exe -i [Dump_Folder]
[-mm] [-ma] [-mt] [-mp] [-mc <Mask>] [-md <Callback_DLL>] [-mk]
[-r]
[-at <Timeout>]
[-k]
[-wer]
Gebruik verwijderen:
procdump.exe -u
Dumptypen:
Dumptype | Beschrijving |
---|---|
-Mm | Schrijf een minidumpbestand. (standaard) - Bevat direct en indirect verwezen geheugen (stacks en waarnaar ze verwijzen). - Bevat alle metagegevens (proces, thread, module, ingang, adresruimte, enzovoort). |
-ma | Schrijf een 'Volledig' dumpbestand. - Bevat alle geheugen (afbeelding, toegewezen en privé). - Bevat alle metagegevens (proces, thread, module, ingang, adresruimte, enzovoort). |
-Mt | Schrijf een dumpbestand 'Triage'. - Bevat rechtstreeks verwezen geheugen (stacks). - Bevat beperkte metagegevens (proces, thread, module en ingang). - Het verwijderen van gevoelige informatie wordt geprobeerd, maar niet gegarandeerd. |
-Mp | Schrijf een MiniPlus-dumpbestand. - Bevat alle privégeheugens en alle lees-/schrijfafbeeldingen of toegewezen geheugen. - Bevat alle metagegevens (proces, thread, module, ingang, adresruimte, enzovoort). - Om de grootte te minimaliseren, wordt het grootste privégeheugengebied van meer dan 512 MB uitgesloten. Een geheugengebied wordt gedefinieerd als de som van geheugentoewijzingen van dezelfde grootte. De dump is zo gedetailleerd als een volledige dump, maar 10%-75% de grootte. - Opmerking: CLR-processen worden gedumpt als Volledig (-ma) vanwege foutopsporingsbeperkingen. |
-Mc | Schrijf een 'Aangepast' dumpbestand. - Bevat het geheugen en de metagegevens die zijn gedefinieerd door het opgegeven MINIDUMP_TYPE masker (Hex). |
-Md | Schrijf een callbackdumpbestand. - Bevat het geheugen dat is gedefinieerd door de callback-routine met de MiniDumpWriteDump naam MiniDumpCallbackRoutine van de opgegeven DLL.- Bevat alle metagegevens (proces, thread, module, ingang, adresruimte, enzovoort). |
-Mk | Schrijf ook een kerneldumpbestand. - Bevat de kernelstacks van de threads in het proces. - Het besturingssysteem biedt geen ondersteuning voor een kerneldump ( -mk ) bij het gebruik van een kloon (-r ).- Wanneer u meerdere dumpgrootten gebruikt, wordt voor elke dumpgrootte een kerneldump genomen. |
Voorwaarden:
Voorwaarde | Beschrijving |
---|---|
-een | Vermijd storingen. Vereist -r . Als de trigger ervoor zorgt dat het doel gedurende langere tijd wordt onderbroken vanwege een overschreden gelijktijdige dumplimiet, wordt de trigger overgeslagen. |
-op | Vermijd storingen tijdens time-out. Annuleer de verzameling van de trigger op N enkele seconden. |
-b | Foutopsporingsonderbrekingspunten behandelen als uitzonderingen (negeer ze anders). |
-c | CPU-drempelwaarde waarboven een dump van het proces moet worden gemaakt. |
-Cl | CPU-drempelwaarde waaronder een dump van het proces moet worden gemaakt. |
-Dc | Voeg de opgegeven tekenreeks toe aan de gegenereerde dumpcommentaar. |
-e | Schrijf een dump wanneer het proces een onverwerkte uitzondering tegenkomt. Neem de voor het maken van dump op uitzonderingen voor de 1 eerste kans op.Toevoegen -ld om een dump te maken wanneer een DLL (module) wordt geladen (filteren van toepassing).Toevoegen -ud om een dump te maken wanneer een DLL (module) wordt uitgeladen (filteren van toepassing).Toevoegen -ct om een dump te maken wanneer een thread wordt gemaakt.Toevoegen -et om een dump te maken wanneer een thread wordt afgesloten. |
-f | Filter (opnemen) op de inhoud van uitzonderingen, foutopsporingslogboeken en bestandsnaam bij DLL laden/verwijderen. Jokertekens (*) worden ondersteund. |
-Fx | Filter (uitsluiten) op de inhoud van uitzonderingen, foutopsporing in logboekregistratie en bestandsnaam bij dll-laden/verwijderen. Jokertekens (*) worden ondersteund. |
-g | Uitvoeren als een systeemeigen foutopsporingsprogramma in een beheerd proces (geen interoperabiliteit). |
-h | Schrijfdump als het proces een vastgelopen venster heeft (reageert niet op vensterberichten gedurende ten minste 5 seconden). |
-k | Dood het proces na het klonen (-r ) of aan het einde van de dumpverzameling. |
-l | De logboekregistratie voor foutopsporing van het proces weergeven. |
-m | Drempelwaarde voor het doorvoeren van geheugen in MB waarop een dump moet worden gemaakt. |
-Ml | Trigger wanneer het doorvoeren van het geheugen lager is dan de opgegeven MB-waarde. |
-n | Aantal dumps dat moet worden geschreven voordat u afsluit. |
-o | Een bestaand dumpbestand overschrijven. |
-p | Trigger wanneer het prestatiemeteritem de opgegeven drempelwaarde overschrijdt of overschrijdt. Sommige tellers en/of exemplaarnamen kunnen hoofdlettergevoelig zijn. |
-Pl | Trigger wanneer het prestatiemeteritem onder de opgegeven drempelwaarde valt. |
-r | Dumpen met behulp van een kloon. Gelijktijdige limiet is optioneel (standaard 1, max 5). Het besturingssysteem biedt geen ondersteuning voor een kerneldump (-mk ) wanneer u een kloon (-r ) gebruikt. LET OP: een hoge gelijktijdigheidswaarde kan van invloed zijn op de systeemprestaties.- Windows 7: Maakt gebruik van weerspiegeling. Het besturingssysteem biedt geen ondersteuning -e voor .- Windows 8.0: Maakt gebruik van weerspiegeling. Het besturingssysteem biedt geen ondersteuning -e voor .- Windows 8.1+: maakt gebruik van PSS. Alle triggertypen worden ondersteund. |
-s | Opeenvolgende seconden voordat dump wordt geschreven (standaard is 10). |
-t | Schrijf een dump wanneer het proces wordt beëindigd. |
-u | Cpu-gebruik ten opzichte van één kern behandelen (gebruikt met -c ). |
-v | ALLEEN FOUTOPSPORING: Uitgebreide uitvoer. |
-w | Wacht tot het opgegeven proces wordt gestart als het niet wordt uitgevoerd. |
-Wer | Zet de dump (grootste) in de wachtrij om Windows Foutrapportage. |
-x | Start de opgegeven afbeelding met optionele argumenten. Als het een Store-toepassing of -pakket is, wordt ProcDump gestart bij de volgende activering (alleen). |
-y | VERBORGEN: Activering van toepassing opslaan. |
-64 | ProcDump legt standaard een 32-bits dump van een 32-bits proces vast bij uitvoering op 64-bits Windows. Met deze optie wordt een 64-bits dump overschreven. Alleen gebruiken voor foutopsporing van WOW64-subsystemen. |
Licentieovereenkomst:
Gebruik de -accepteula
opdrachtregeloptie om automatisch de Sysinternals-licentieovereenkomst te accepteren.
Automatische beëindiging:
-cancel <Target Process PID>
Als u deze optie gebruikt of een gebeurtenis instelt met de naam ProcDump-<PID>
, is hetzelfde als het typen van Ctrl+C om ProcDump correct te beëindigen. Een goede beëindiging zorgt ervoor dat het proces wordt hervat als een opname actief is. De annulering is van toepassing op ALLE ProcDump-exemplaren die het proces bewaken.
Bestandsnaam:
Standaarddumpbestand: PROCESSNAME_YYMMDD_HHMMSS.dmp
De volgende vervangingen worden ondersteund:
Vervanging | Uitleg |
---|---|
PROCESSNAME | Procesnaam |
PID | Process ID |
EXCEPTIONCODE | Uitzonderingscode |
JJMMDDD | Jaar/maand/dag |
UUMMSS | Uur/minuut/seconde |
Voorbeelden
Schrijf een minidump van een proces met de naam Kladblok (er kan slechts één overeenkomst bestaan):
C:\>procdump notepad
Schrijf een volledige dump van een proces met PID '4572':
C:\>procdump -ma 4572
Schrijf eerst een mini en vervolgens een volledige dump van een proces met PID '4572':
C:\>procdump -mm -ma 4572
Schrijf 3 Minidumps 5 seconden uit elkaar van een proces met de naam 'kladblok':
C:\>procdump -n 3 -s 5 notepad
Schrijf maximaal 3 Minidumps van een proces met de naam 'verbruik' wanneer het 20% CPU-gebruik gedurende vijf seconden overschrijdt:
C:\>procdump -n 3 -s 5 -c 20 consume
Schrijf een Minidump voor een proces met de naam 'hang.exe' wanneer een van de vensters langer dan 5 seconden niet reageert:
C:\>procdump -h hang.exe
Schrijf een volledige en kerneldump voor een proces met de naam 'hang.exe' wanneer een van de vensters langer dan 5 seconden niet reageert:
C:\>procdump -ma -mk -h hang.exe
Schrijf een minidump van een proces met de naam 'outlook' wanneer het totale CPU-gebruik van het systeem gedurende 10 seconden groter is dan 20%:
C:\>procdump outlook -s 10 -p "\Processor(_Total)\% Processor Time" 20
Schrijf een volledige dump van een proces met de naam 'outlook' wanneer het aantal ingangen van Outlook groter is dan 10.000:
C:\>procdump -ma outlook -p "\Process(Outlook)\Handle Count" 10000
Schrijf een volledige dump van 'svchost' PID 1234, exemplaar 87, wanneer het aantal ingangen groter is dan 10.000:
C:\>procdump -ma 1234 -p "\Process(svchost#87)\Handle Count" 10000
Opmerking: Meerdere exemplaartellers
Als er meerdere exemplaren van de teller zijn, moet u het naam- en/of exemplaarnummer opnemen.\Processor(NNN)\% Processor Time \Thermal Zone Information(<name>)\Temperature \Process(<name>[#NNN])\<counter>
Voor oudere besturingssystemen moet u de PID toevoegen voor
\Process
tellers.\Process(<name>[_PID])\<counter>
Tip: Gebruik Prestatiemeter om de prestatiemeteritems weer te geven (esp. hoofdlettergevoeligheid).
Tip: Voor\Process(*)
op basistellers gebruikt u PowerShell om een PID toe te wijzen aan de#NNN
bijbehorende.Get-Counter -Counter "\Process(*)\ID Process"
Schrijf een volledige dump voor een uitzondering voor de tweede kans:
C:\>procdump -ma -e w3wp.exe
Schrijf een volledige dump voor een uitzondering van de eerste of tweede kans:
C:\>procdump -ma -e 1 w3wp.exe
Schrijf een volledige dump voor een foutopsporingstekenreeksbericht:
C:\>procdump -ma -l w3wp.exe
Schrijf maximaal 10 volledige dumps van elke 1e of 2e kans uitzondering op w3wp.exe:
C:\>procdump -ma -n 10 -e 1 w3wp.exe
Schrijf maximaal 10 volledige dumps als de code/naam/msg van een uitzondering '
NotFound
' bevat:C:\>procdump -ma -n 10 -e 1 -f NotFound w3wp.exe
Schrijf maximaal 10 volledige dumps als een foutopsporingstekenreeksbericht '
NotFound
' bevat:C:\>procdump -ma -n 10 -l -f NotFound w3wp.exe
Wacht op een proces met de naam Kladblok (en bewaak het op uitzonderingen):
C:\>procdump -e -w notepad
Start een proces met de naam Kladblok (en bewaak het op uitzonderingen):
C:\>procdump -e -x c:\dumps notepad
Registreer u voor het starten en probeer een storetoepassing te activeren. Er wordt een nieuw ProcDump-exemplaar gestart wanneer deze wordt geactiveerd:
C:\>procdump -e -x c:\dumps Microsoft.BingMaps_8wekyb3d8bbwe!AppexMaps
Registreer u voor het starten van een winkelpakket. Er wordt een nieuw ProcDump-exemplaar gestart wanneer deze (handmatig) is geactiveerd:
C:\>procdump -e -x c:\dumps Microsoft.BingMaps_1.2.0.136_x64__8wekyb3d8bbwe
Schrijf een MiniPlus-dump van het Microsoft Exchange Information Store wanneer deze een onverwerkte uitzondering heeft:
C:\>procdump -mp -e store.exe
Weergeven zonder een dump te schrijven, de uitzonderingscodes/namen van w3wp.exe:
C:\>procdump -e 1 -f "" w3wp.exe
Windows 7/8.0; Gebruik Weerspiegeling om onderbreking voor vijf opeenvolgende triggers te verminderen:
C:\>procdump -r -ma -n 5 -s 15 wmplayer.exe
Windows 8.1+; Gebruik PSS om de storing voor 5 gelijktijdige triggers te verminderen:
C:\>procdump -r 5 -ma -n 5 -s 15 wmplayer.exe
Installeer ProcDump als postmortem debugger (AeDebug):
C:\>procdump -ma -i c:\dumps
.. of..
C:\Dumps>procdump -ma -i
Verwijder ProcDump als postmortem debugger (AeDebug):
C:\>procdump -u
Bekijk een lijst met voorbeeldopdrachtregels (de bovenstaande voorbeelden worden vermeld):
C:\>procdump -? -e
Verwante koppelingen
- Windows Internals Book The official updates and errata page for the definitive book on Windows internals, by Mark Russinovich and David Salomon.
- Windows Sysinternals Administrator's Reference The official guide to the Sysinternals utilities by Mark Russinovich and Aaron Margosis, including descriptions of all the tools, their features, how to use them for troubleshooting, and example real-world cases of their use.
ProcDump downloaden (714 KB)
ProcDump voor Linux downloaden (GitHub)
Wordt uitgevoerd op:
- Client: Windows 8.1 en hoger.
- Server: Windows Server 2012 en hoger.
Meer informatie
- Defragmentatie Tools: #9 - ProcDump Deze aflevering van Defrag Tools behandelt wat het hulpprogramma vastlegt en de verwachte onderbrekingsduur
- Defragmentatie Tools: #10 - ProcDump - Triggers Deze aflevering behandelt triggeropties in het bijzonder 1e en 2e kans uitzonderingen
- Defragmentatie tools: #11 - ProcDump - Windows 8 & Process Monitor Deze aflevering behandelt moderne toepassingsondersteuning en ondersteuning voor procesmonitorregistratie