ProcDump v11.0

Door Mark Russinovich en Andrew Richards

Gepubliceerd: 11-03-2022

DownloadProcDump 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).
-Markus 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
-A 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 -evoor .
- Windows 8.0: Maakt gebruik van weerspiegeling. Het besturingssysteem biedt geen ondersteuning -evoor .
- 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.

Gebruiksrechtovereenkomst:

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 #NNNbijbehorende.

    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 van 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
  • Windows Internals Book The official updates and errata page for the definitive book on Windows internals, by Mark Russinovich and David Salomon.
  • Windows Sysinternals Beheer istrator'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.

DownloadProcDump 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