Číst v angličtině

Sdílet prostřednictvím


ProcDump v11.0

Mark Russinovich a Andrew Richards

Publikováno: 11.3.2022

StáhnoutStáhnout ProcDump (714 KB)

Stáhnout ProcDump pro Linux (GitHub)
Stáhnout ProcDump pro Mac (GitHub)

Vytvořeno pomocí ZoomIt

Úvod

ProcDump je nástroj příkazového řádku, jehož primárním účelem je monitorování aplikace pro špičky procesoru a generování výpisů stavu systému během špičky, kterou může správce nebo vývojář použít k určení příčiny špičky. Nástroj ProcDump také zahrnuje monitorování zablokovaných oken (pomocí stejné definice okna, které používá Správce úloh), neošetřené monitorování výjimek a může generovat výpisy na základě hodnot čítačů výkonu systému. Může také sloužit jako obecný nástroj pro výpis stavu procesu, který můžete vložit do jiných skriptů.

Použití nástroje ProcDump

Využití zachytávání:

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

Instalace využití:

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

Odinstalace využití:

Windows Command Prompt
procdump.exe -u

Typy výpisu paměti:

Typ výpisu paměti Popis
-milimetr Zapište soubor s výpisem paměti Mini. (výchozí)
- Zahrnuje přímo a nepřímo odkazovanou paměť (zásobníky a odkazy).
– Zahrnuje všechna metadata (proces, vlákno, modul, popisovač, adresní prostor atd.).
-miliampér Zapište soubor s výpisem stavu systému full.
– Zahrnuje veškerou paměť (obrázek, mapovaný a soukromý).
– Zahrnuje všechna metadata (proces, vlákno, modul, popisovač, adresní prostor atd.).
-Mt Zapište soubor výpisu stavu stavu pro třídění.
– Zahrnuje přímo odkazovanou paměť (zásobníky).
– Zahrnuje omezená metadata (proces, vlákno, modul a popisovač).
- Odebrání citlivých informací se pokouší, ale není zaručeno.
-Mp Napište soubor s výpisem paměti MiniPlus.
– Zahrnuje veškerou soukromou paměť a všechny obrázky pro čtení a zápis nebo mapovanou paměť.
– Zahrnuje všechna metadata (proces, vlákno, modul, popisovač, adresní prostor atd.).
– Pro minimalizaci velikosti je vyloučena největší oblast privátní paměti nad 512 MB.
  Oblast paměti je definována jako součet přidělení paměti stejné velikosti.
  Výpis paměti je tak podrobný jako úplný výpis paměti, ale velikost je 10%-75 %.
– Poznámka: Procesy CLR se vypisují jako úplné (-ma) kvůli omezením ladění.
-Mc Zapište soubor s výpisem stavu systému Vlastní.
- Zahrnuje paměť a metadata definovaná zadanou MINIDUMP_TYPE maskou (Hex).
-Md Zapište soubor výpisu stavu zpětného volání.
- Zahrnuje paměť definovanou rutinou MiniDumpWriteDump zpětného volání s názvem MiniDumpCallbackRoutine zadané knihovny DLL.
– Zahrnuje všechna metadata (proces, vlákno, modul, popisovač, adresní prostor atd.).
-Mk Zapište také soubor výpisu stavu jádra.
– Zahrnuje zásobníky jádra vláken v procesu.
– Operační systém nepodporuje výpis jádra (-mk) při použití klonu (-r).
– Při použití více velikostí výpisu paměti se pro každou velikost výpisu paměti použije výpis paměti jádra.

Podmínky:

Podmínka Popis
-a Vyhněte se výpadku. Vyžaduje -r. Pokud trigger způsobí pozastavení cíle po delší dobu kvůli překročení limitu souběžného výpisu paměti, aktivační událost se přeskočí.
-u Vyhněte se výpadku při vypršení časového limitu. Zrušte kolekci triggeru v N sekundách.
-b Zacházejte s ladicí zarážky jako výjimkami (jinak je ignorujte).
-c Prahová hodnota procesoru, nad kterou se má vytvořit výpis stavu procesu.
-Cl Prahová hodnota procesoru, pod kterou se má vytvořit výpis stavu procesu.
-stejnosměrný proud Přidejte zadaný řetězec do vygenerovaného komentáře k výpisu stavu systému.
-e Pokud proces narazí na neošetřenou výjimku, napište výpis paměti.
Zahrňte příkaz k vytvoření výpisu 1 paměti u výjimek s první šancí.
Přidání -ld pro vytvoření výpisu paměti při načtení knihovny DLL (modulu) (filtrování platí).
Přidání -ud pro vytvoření výpisu paměti při uvolnění knihovny DLL (modulu) (filtrování platí).
Přidejte -ct k vytvoření výpisu paměti při vytvoření vlákna.
Přidání -et k vytvoření výpisu paměti při ukončení vlákna
-f Filtr (include) pro obsah výjimek, protokolování ladění a název souboru při načítání a uvolnění knihovny DLL. Podporují se zástupné cardy (*).
-trh zahraničních měn Filtrování (vyloučení) u obsahu výjimek, protokolování ladění a názvu souboru při načítání a uvolnění knihovny DLL. Podporují se zástupné cardy (*).
-g Spustit jako nativní ladicí program ve spravovaném procesu (bez spolupráce)
-h Výpis stavu, pokud má proces zablokující okno (nereaguje na zprávy okna po dobu nejméně 5 sekund).
-k Ukončete proces po klonování (-r) nebo na konci kolekce výpisů.
-l Zobrazí protokolování ladění procesu.
-m Prahová hodnota potvrzení paměti v MB, ve které se má vytvořit výpis paměti.
-Ml Aktivují se, když potvrzení paměti klesne pod zadanou hodnotu MB.
-n Početvýpisch
-o Přepište existující soubor s výpisem paměti.
-p Aktivujte, když je čítač výkonu nebo je vyšší než zadaná prahová hodnota. U některých čítačů a/nebo názvů instancí se rozlišují malá a velká písmena.
-Pl Aktivujte, když čítač výkonu klesne pod zadanou prahovou hodnotu.
-r Výpis stavu pomocí klonu Souběžný limit je volitelný (výchozí 1, max. 5). Operační systém nepodporuje výpis jádra (-mk) při použití klonu (-r). UPOZORNĚNÍ: Vysoká hodnota souběžnosti může mít vliv na výkon systému.
- Windows 7: Používá reflexi. Operační systém nepodporuje -e.
- Windows 8.0: Používá reflexi. Operační systém nepodporuje -e.
- Windows 8.1+: Používá pss. Podporují se všechny typy aktivačních událostí.
-s Po sobě jdoucí sekundy před zápisem výpisu (výchozí hodnota je 10).
-t Při ukončení procesu napište výpis paměti.
-u Zacházení s využitím procesoru vzhledem k jednomu jádru (používá se -cs).
-v POUZE LADĚNÍ: Podrobný výstup.
-w Počkejte, až se zadaný proces spustí, pokud není spuštěný.
-Wer Zařadíte do fronty výpis (největší) do Zasílání zpráv o chybách systému Windows.
-x Spusťte zadaný obrázek s volitelnými argumenty. Pokud se jedná o aplikaci nebo balíček store, spustí se procDump při další aktivaci (pouze).
-y SKRYTÉ: Aktivace aplikace store.
-64 Ve výchozím nastavení Nástroj ProcDump zaznamená 32bitový výpis 32bitového procesu při spuštění v 64bitovém systému Windows. Tato možnost přepíše vytvoření 64bitového výpisu paměti. Používá se pouze pro ladění subsystému WOW64.

Licenční smlouva:

Použijte možnost příkazového -accepteula řádku k automatickému přijetí licenční smlouvy Sysinternals.

Automatizované ukončení:

-cancel <Target Process PID>

Pomocí této možnosti nebo nastavením události s názvem ProcDump-<PID> je stejná jako při psaní Ctrl+C pro řádné ukončení nástroje ProcDump. Řádné ukončení zajišťuje obnovení procesu, pokud je zachytávání aktivní. Zrušení platí pro všechny instance ProcDump, které proces monitorují.

Jméno souboru:

Výchozí název souboru výpisu paměti: PROCESSNAME_YYMMDD_HHMMSS.dmp

Podporují se následující náhrady:

Substituce Vysvětlení
PROCESSNAME Název procesu
PID Process ID
EXCEPTIONCODE Kód výjimky
YYMMDDD Rok/měsíc/den
HHMMSS Hodina/minuta/sekunda

Příklady

  • Napište mini výpis stavu procesu s názvem Poznámkový blok (může existovat pouze jedna shoda):

    Windows Command Prompt
    C:\>procdump notepad
    
  • Napište úplný výpis stavu procesu s PID 4572:

    Windows Command Prompt
    C:\>procdump -ma 4572
    
  • Nejprve napište mini a pak úplný výpis procesu s PID 4572:

    Windows Command Prompt
    C:\>procdump -mm -ma 4572
    
  • Zapište 3 mini výpisy paměti 5 sekund od procesu s názvem "poznámkový blok":

    Windows Command Prompt
    C:\>procdump -n 3 -s 5 notepad
    
  • Při překročení 20% využití procesoru po dobu pěti sekund zapište až 3 minimální výpisy stavu procesu s názvem "spotřebovat":

    Windows Command Prompt
    C:\>procdump -n 3 -s 5 -c 20 consume
    
  • Pokud jeden z jeho oken nereaguje déle než 5 sekund, napište pro proces s názvem "hang.exe":

    Windows Command Prompt
    C:\>procdump -h hang.exe
    
  • Pokud jeden z jeho oken nereaguje déle než 5 sekund, zapište úplný výpis stavu jádra pro proces s názvem "hang.exe":

    Windows Command Prompt
    C:\>procdump -ma -mk -h hang.exe
    
  • Pokud celkové využití procesoru systému překročí 20 % po dobu 10 sekund, napište mini výpis procesu s názvem "outlook":

    Windows Command Prompt
    C:\>procdump outlook -s 10 -p "\Processor(_Total)\% Processor Time" 20
    
  • Pokud počet popisovačů Outlooku překročí 10 000, napište úplný výpis procesu s názvem outlook:

    Windows Command Prompt
    C:\>procdump -ma outlook -p "\Process(Outlook)\Handle Count" 10000
    
  • Pokud počet popisovačů překročí 10 000, zapište úplný výpis kódu PID 1234, instance #87:

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

    Poznámka: Více čítačů instancí
    Pokud existuje více instancí čítače, budete muset zahrnout název nebo číslo instance.

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

    Starší operační systém vyžaduje připojení PID pro \Process čítače.

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

    Tip: Pomocí Sledování výkonu zobrazte čítače (esp. case sensitivity).
    Tip: Pro \Process(*) čítače založené pomocí PowerShellu namapovat PID na jeho #NNN.

    pwsh
    Get-Counter -Counter "\Process(*)\ID Process"
    
  • Napište úplný výpis paměti pro 2. náhodnou výjimku:

    Windows Command Prompt
    C:\>procdump -ma -e w3wp.exe
    
  • Napište úplný výpis paměti pro 1. nebo 2. náhodnou výjimku:

    Windows Command Prompt
    C:\>procdump -ma -e 1 w3wp.exe
    
  • Napište úplný výpis stavu zprávy ladicího řetězce:

    Windows Command Prompt
    C:\>procdump -ma -l w3wp.exe
    
  • Zapište až 10 úplných výpisů paměti každé 1. nebo 2. náhodné výjimky w3wp.exe:

    Windows Command Prompt
    C:\>procdump -ma -n 10 -e 1 w3wp.exe
    
  • Pokud kód/název/msg výjimky obsahujeNotFound '', zapište až 10 úplných výpisů paměti:

    Windows Command Prompt
    C:\>procdump -ma -n 10 -e 1 -f NotFound w3wp.exe
    
  • Pokud zpráva řetězce ladění obsahujeNotFound "", zapište až 10 úplných výpisů stavu:

    Windows Command Prompt
    C:\>procdump -ma -n 10 -l -f NotFound w3wp.exe
    
  • Počkejte na proces s názvem Poznámkový blok (a sledujte výjimky):

    Windows Command Prompt
    C:\>procdump -e -w notepad
    
  • Spusťte proces s názvem Poznámkový blok (a monitorujte ho pro výjimky):

    Windows Command Prompt
    C:\>procdump -e -x c:\dumps notepad
    
  • Zaregistrujte se ke spuštění a pokuste se aktivovat obchod s aplikací. Po aktivaci se spustí nová instance ProcDump:

    Windows Command Prompt
    C:\>procdump -e -x c:\dumps Microsoft.BingMaps_8wekyb3d8bbwe!AppexMaps
    
  • Zaregistrujte se ke spuštění "balíčku" obchodu. Nová instance ProcDump se spustí, když je aktivovaná (ručně):

    Windows Command Prompt
    C:\>procdump -e -x c:\dumps Microsoft.BingMaps_1.2.0.136_x64__8wekyb3d8bbwe
    
  • Pokud má neošetřenou výjimku, napište výpis paměti MiniPlus úložiště informací microsoft Exchange:

    Windows Command Prompt
    C:\>procdump -mp -e store.exe
    
  • Zobrazí se bez zápisu výpisu paměti, kódy a názvy výjimek w3wp.exe:

    Windows Command Prompt
    C:\>procdump -e 1 -f "" w3wp.exe
    
  • Windows 7/8.0; Pomocí reflexe můžete snížit výpadek pro 5 po sobě jdoucích triggerů:

    Windows Command Prompt
    C:\>procdump -r -ma -n 5 -s 15 wmplayer.exe
    
  • Windows 8.1+; Pomocí PSS můžete snížit výpadek pro 5 souběžných triggerů:

    Windows Command Prompt
    C:\>procdump -r 5 -ma -n 5 -s 15 wmplayer.exe
    
  • Nainstalujte nástroj ProcDump jako ladicí program postmortem (AeDebug):

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

    .. nebo..

    Windows Command Prompt
    C:\Dumps>procdump -ma -i
    
  • Odinstalujte Nástroj ProcDump jako ladicí program postmortem (AeDebug):

    Windows Command Prompt
    C:\>procdump -u
    

Prohlédněte si seznam ukázkových příkazových řádků (výše uvedené příklady):

Windows Command Prompt
C:\>procdump -? -e
  • Windows Internals Book Oficiální aktualizace a errata stránka konečné knihy o Windows internals, Mark Russinovich a David Solomon.
  • Správce systému Windows Sysinternals Reference Oficiální průvodce sysinternals nástroje Sysinternals Mark Russinovich a Aaron Margosis, včetně popisů všech nástrojů, jejich funkcí, jak je používat k řešení potíží, a příklady případů skutečného světa jejich použití.

StáhnoutStáhnout ProcDump (714 KB)

Stáhnout ProcDump pro Linux (GitHub)
Stáhnout ProcDump pro Mac (GitHub)

Běží na:

  • Klient: Windows 8.1 a vyšší.
  • Server: Windows Server 2012 a novější.

Další informace