Läs på engelska

Dela via


ProcDump v11.0

Av Mark Russinovich och Andrew Richards

Publicerad: 2022-03-11

Ladda nedLadda ned ProcDump (714 KB)

Ladda ned ProcDump för Linux (GitHub)
Ladda ned ProcDump för Mac (GitHub)

Skapad med ZoomIt

Introduktion

ProcDump är ett kommandoradsverktyg vars primära syfte är att övervaka ett program för CPU-toppar och generera kraschdumpar under en topp som en administratör eller utvecklare kan använda för att fastställa orsaken till toppen. ProcDump innehåller även övervakning av låsta fönster (med samma definition av en fönsterlåsning som Windows och Aktivitetshanteraren använder), ohanterad undantagsövervakning och kan generera dumpar baserat på värdena för systemprestandaräknare. Det kan också fungera som ett allmänt processdumpverktyg som du kan bädda in i andra skript.

Använda ProcDump

Avbildningsanvändning:

Windows Command Prompt
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, ...]}
            }

Installera användning:

Windows Command Prompt
procdump.exe -i [Dump_Folder]
            [-mm] [-ma] [-mt] [-mp] [-mc <Mask>] [-md <Callback_DLL>] [-mk]
            [-r]
            [-at <Timeout>]
            [-k]
            [-wer]

Avinstallera användning:

Windows Command Prompt
procdump.exe -u

Dumptyper:

Dumptyp beskrivning
-mm Skriv en "Mini"-dumpfil. (standard)
– Innehåller direkt och indirekt refererat minne (staplar och vad de refererar till).
– Innehåller alla metadata (process, tråd, modul, handtag, adressutrymme osv.).
-mor Skriv en fullständig dumpfil.
– Innehåller allt minne (bild, mappad och privat).
– Innehåller alla metadata (process, tråd, modul, handtag, adressutrymme osv.).
-Mt Skriv en "Triage"-dumpfil.
– Innehåller direkt refererat minne (staplar).
– Innehåller begränsade metadata (process, tråd, modul och handtag).
- Borttagning av känslig information görs men garanteras inte.
-parlamentsledamot Skriv en "MiniPlus"-dumpfil.
– Innehåller allt privat minne och all läs-/skrivbild eller mappat minne.
– Innehåller alla metadata (process, tråd, modul, handtag, adressutrymme osv.).
– För att minimera storleken undantas det största privata minnesområdet över 512 MB.
  Ett minnesområde definieras som summan av minnesallokeringar i samma storlek.
  Dumpen är så detaljerad som en fullständig dump men 10%-75% storleken.
- Obs! CLR-processer dumpas som fullständiga (-ma) på grund av felsökningsbegränsningar.
-Mc Skriv en "anpassad" dumpfil.
– Innehåller minne och metadata som definierats av den angivna MINIDUMP_TYPE masken (Hex).
-Md Skriv en dumpfil för återanrop.
– Innehåller det minne som definieras av MiniDumpWriteDump återanropsrutinen med namnet MiniDumpCallbackRoutine på den angivna DLL:en.
– Innehåller alla metadata (process, tråd, modul, handtag, adressutrymme osv.).
-Mk Skriv även en "Kernel"-dumpfil.
– Innehåller kernelstackarna i trådarna i processen.
– Operativsystemet stöder inte en kerneldump (-mk) när du använder en klon (-r).
– När du använder flera dumpstorlekar tas en kerneldump för varje dumpstorlek.

Villkor:

Villkor beskrivning
-a Undvik avbrott. Kräver -r. Om utlösaren gör att målet pausas under en längre tid på grund av en överskriden gräns för samtidiga dumpar hoppas utlösaren över.
-vid Undvik avbrott vid timeout. Avbryt utlösarens samling i N sekunder.
-b Behandla felsöknings brytpunkter som undantag (annars ignorera dem).
-c Cpu-tröskelvärde över vilket du vill skapa en dump av processen.
-cl Cpu-tröskelvärde under vilket du kan skapa en dump av processen.
-domänkontrollant Lägg till den angivna strängen i den genererade dumpkommenten.
-e Skriv en dump när processen stöter på ett ohanterat undantag.
Inkludera att skapa dump på 1 undantag för första chansen.
Lägg -ld till för att skapa en dump när en DLL (modul) läses in (filtrering gäller).
Lägg -ud till för att skapa en dump när en DLL (modul) tas bort (filtrering gäller).
Lägg till -ct för att skapa en dump när en tråd skapas.
Lägg till -et för att skapa en dump när en tråd avslutas.
-f Filtrera (inkludera) på innehållet i undantag, felsökningsloggning och filnamn vid DLL-inläsning/avlastning. Jokertecken (*) stöds.
-Fx Filtrera (exkludera) på innehållet i undantag, felsökningsloggning och filnamn vid DLL-inläsning/avlastning. Jokertecken (*) stöds.
-g Kör som ett internt felsökningsprogram i en hanterad process (inget heltal).
-h Skriv dump om processen har ett låst fönster (svarar inte på fönstermeddelanden på minst 5 sekunder).
-k Avsluta processen efter kloning (-r) eller i slutet av dumpsamlingen.
-L Visa felsökningsloggningen för processen.
-m Tröskelvärde för minnesincheckning i MB för att skapa en dump.
-Ml Utlösare när minnesincheckning sjunker under angivet MB-värde.
-n Antal dumpar som ska skrivas innan du avslutar.
-o Skriv över en befintlig dumpfil.
-p Utlös när prestandaräknaren ligger på eller överskrider det angivna tröskelvärdet. Vissa räknare och/eller instansnamn kan vara skiftlägeskänsliga.
-Pl Utlösare när prestandaräknaren faller under det angivna tröskelvärdet.
-r Dumpa med en klon. Samtidig gräns är valfri (standard 1, max 5). Operativsystemet stöder inte en kerneldump (-mk) när du använder en klon (-r). VARNING! Ett högt samtidighetsvärde kan påverka systemets prestanda.
– Windows 7: Använder reflektion. Operativsystemet stöder -einte .
– Windows 8.0: Använder reflektion. Operativsystemet stöder -einte .
– Windows 8.1+: Använder PSS. Alla utlösartyper stöds.
-s Sekunder i följd innan dumpen skrivs (standardvärdet är 10).
-t Skriv en dump när processen avslutas.
-u Behandla CPU-användning i förhållande till en enda kärna (används med -c).
-v ENDAST FELSÖKNING: Utförliga utdata.
-w Vänta tills den angivna processen startas om den inte körs.
-wer Köa (största) dumpen till Windows Felrapportering.
-x Starta den angivna avbildningen med valfria argument. Om det är ett Store-program eller -paket startar ProcDump vid nästa aktivering (endast).
-y DOLD: Lagra programaktivering.
-64 Som standard samlar ProcDump in en 32-bitars dump av en 32-bitarsprocess när den körs i 64-bitars Windows. Det här alternativet åsidosätter för att skapa en 64-bitars dump. Använd endast för wow64-undersystemsfelsökning.

Licensavtal:

Använd kommandoradsalternativet -accepteula för att automatiskt acceptera Sysinternals-licensavtalet.

Automatisk avslutning:

-cancel <Target Process PID>

Att använda det här alternativet eller ange en händelse med namnet ProcDump-<PID> är detsamma som att skriva Ctrl+C för att korrekt avsluta ProcDump. En korrekt avslutning säkerställer att processen återupptas om en avbildning är aktiv. Annulleringen gäller för ALLA ProcDump-instanser som övervakar processen.

Filnamn:

Standardfilnamn för dump: PROCESSNAME_YYMMDD_HHMMSS.dmp

Följande ersättningar stöds:

Ersättning Förklaring
PROCESSNAME Processnamn
PID Process ID
UNDANTAGSKOD Undantagskod
YYMMDD År/månad/dag
HHMMSS Timme/minut/sekund

Exempel

  • Skriv en minidump av en process med namnet "anteckningar" (endast en matchning kan finnas):

    Windows Command Prompt
    C:\>procdump notepad
    
  • Skriv en fullständig dump av en process med PID "4572":

    Windows Command Prompt
    C:\>procdump -ma 4572
    
  • Skriv en Mini först och sedan en fullständig dump av en process med PID "4572":

    Windows Command Prompt
    C:\>procdump -mm -ma 4572
    
  • Skriv 3 Mini dumpar 5 sekunder från en process med namnet "anteckningar":

    Windows Command Prompt
    C:\>procdump -n 3 -s 5 notepad
    
  • Skriv upp till 3 minidumpar av en process med namnet "förbruka" när den överskrider 20 % CPU-användning i fem sekunder:

    Windows Command Prompt
    C:\>procdump -n 3 -s 5 -c 20 consume
    
  • Skriv en minidump för en process med namnet "hang.exe" när ett av fönstren inte svarar i mer än 5 sekunder:

    Windows Command Prompt
    C:\>procdump -h hang.exe
    
  • Skriv en fullständig och kernel-dump för en process med namnet "hang.exe" när ett av dess fönster inte svarar i mer än 5 sekunder:

    Windows Command Prompt
    C:\>procdump -ma -mk -h hang.exe
    
  • Skriv en minidumpning av en process med namnet "outlook" när den totala system-CPU-användningen överskrider 20 % i 10 sekunder:

    Windows Command Prompt
    C:\>procdump outlook -s 10 -p "\Processor(_Total)\% Processor Time" 20
    
  • Skriv en fullständig dump av en process med namnet "outlook" när Antalet handtag i Outlook överstiger 10 000:

    Windows Command Prompt
    C:\>procdump -ma outlook -p "\Process(Outlook)\Handle Count" 10000
    
  • Skriv en fullständig dump av "svchost" PID 1234, instans nr 87, när referensantalet överskrider 10 000:

    Windows Command Prompt
    C:\>procdump -ma 1234 -p "\Process(svchost#87)\Handle Count" 10000
    

    Obs! Flera instansräknare
    Om det finns flera instanser av räknaren måste du inkludera namn och/eller instansnummer.

    txt
    \Processor(NNN)\% Processor Time
    \Thermal Zone Information(<name>)\Temperature
    \Process(<name>[#NNN])\<counter>
    

    Äldre operativsystem kräver att du lägger till PID för \Process räknare.

    txt
    \Process(<name>[_PID])\<counter>
    

    Tips: Använd Prestandaövervakaren för att visa räknarna (esp. skiftlägeskänslighet).
    Tips: För \Process(*) baserade räknare använder du PowerShell för att mappa en PID till dess #NNN.

    pwsh
    Get-Counter -Counter "\Process(*)\ID Process"
    
  • Skriv en fullständig dump för ett undantag för andra chansen:

    Windows Command Prompt
    C:\>procdump -ma -e w3wp.exe
    
  • Skriv en fullständig dump för ett undantag för första eller andra chansen:

    Windows Command Prompt
    C:\>procdump -ma -e 1 w3wp.exe
    
  • Skriv en fullständig dump för ett felsökningssträngmeddelande:

    Windows Command Prompt
    C:\>procdump -ma -l w3wp.exe
    
  • Skriv upp till 10 fullständiga dumpar av varje 1:a eller 2:a chans undantag för w3wp.exe:

    Windows Command Prompt
    C:\>procdump -ma -n 10 -e 1 w3wp.exe
    
  • Skriv upp till 10 fullständiga dumpar om ett undantags kod/namn/msg innehåller :NotFound

    Windows Command Prompt
    C:\>procdump -ma -n 10 -e 1 -f NotFound w3wp.exe
    
  • Skriv upp till 10 fullständiga dumpar om ett felsökningssträngmeddelande innehåller :NotFound:

    Windows Command Prompt
    C:\>procdump -ma -n 10 -l -f NotFound w3wp.exe
    
  • Vänta på en process med namnet "anteckningar" (och övervaka den för undantag):

    Windows Command Prompt
    C:\>procdump -e -w notepad
    
  • Starta en process med namnet "anteckningar" (och övervaka den för undantag):

    Windows Command Prompt
    C:\>procdump -e -x c:\dumps notepad
    
  • Registrera dig för start och försök att aktivera ett "program". En ny ProcDump-instans startar när den aktiveras:

    Windows Command Prompt
    C:\>procdump -e -x c:\dumps Microsoft.BingMaps_8wekyb3d8bbwe!AppexMaps
    
  • Registrera dig för att starta ett butikspaket. En ny ProcDump-instans startar när den aktiveras (manuellt):

    Windows Command Prompt
    C:\>procdump -e -x c:\dumps Microsoft.BingMaps_1.2.0.136_x64__8wekyb3d8bbwe
    
  • Skriv en MiniPlus-dump av Microsoft Exchange Information Store när den har ett ohanterat undantag:

    Windows Command Prompt
    C:\>procdump -mp -e store.exe
    
  • Visa utan att skriva en dump, undantagskoderna/namnen på w3wp.exe:

    Windows Command Prompt
    C:\>procdump -e 1 -f "" w3wp.exe
    
  • Windows 7/8.0; Använd Reflektion för att minska avbrott för 5 på varandra följande utlösare:

    Windows Command Prompt
    C:\>procdump -r -ma -n 5 -s 15 wmplayer.exe
    
  • Windows 8.1+; Använd PSS för att minska avbrott för 5 samtidiga utlösare:

    Windows Command Prompt
    C:\>procdump -r 5 -ma -n 5 -s 15 wmplayer.exe
    
  • Installera ProcDump som (AeDebug) postmortem-felsökningsprogrammet:

    Windows Command Prompt
    C:\>procdump -ma -i c:\dumps
    

    .. eller..

    Windows Command Prompt
    C:\Dumps>procdump -ma -i
    
  • Avinstallera ProcDump som (AeDebug) postmortem-felsökningsprogrammet:

    Windows Command Prompt
    C:\>procdump -u
    

Se en lista över exempelkommandorader (exemplen visas ovan):

Windows Command Prompt
C:\>procdump -? -e
  • Windows Internals Book De officiella uppdateringarna och erratasidan för den definitiva boken om Windows internals, av Mark Russinovich och David Solomon.
  • Windows Sysinternals Administrator's Reference Den officiella guiden till Sysinternals-verktygen av Mark Russinovich och Aaron Margosis, inklusive beskrivningar av alla verktyg, deras funktioner, hur du använder dem för felsökning och exempel på verkliga fall av deras användning.

Ladda nedLadda ned ProcDump (714 KB)

Ladda ned ProcDump för Linux (GitHub)
Ladda ned ProcDump för Mac (GitHub)

Körs på:

  • Klient: Windows 8.1 och senare.
  • Server: Windows Server 2012 och senare.

Läs mer