ProcDump v11.0

Mark Russinovich a Andrew Richards

Publikováno: 11.3.2022

DownloadStáhnout ProcDump(714 KB)

Stáhnout ProcDump pro Linux (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í:

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í:

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

Odinstalace využití:

procdump.exe -u

Typy výpisu paměti:

Typ výpisu paměti Popis
-Mm 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.).
-Ma 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čí.
-Na 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.
-Dc 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 (*).
-Fx 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á Reflexe ion. Operační systém nepodporuje -e.
– Windows 8.0: Používá Reflexe ion. 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í.

Název_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):

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

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

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

    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":

    C:\>procdump -n 3 -s 5 -c 20 consume
    
  • Napište mini výpis paměti pro proces s názvem hang.exe, když jeden z jeho oken nereaguje déle než 5 sekund:

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

    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":

    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:

    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:

    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.

    \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.

    \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.

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

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

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

    C:\>procdump -ma -l w3wp.exe
    
  • Zapište až 10 úplných výpisů z každého 1st nebo 2nd chance exception of w3wp.exe:

    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:

    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:

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

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

    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:

    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ě):

    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:

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

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

    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ů:

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

    C:\>procdump -ma -i c:\dumps
    

    .. Nebo..

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

    C:\>procdump -u
    

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

C:\>procdump -? -e
  • Windows Internals Book Oficiální aktualizace a errata stránka konečné knihy o Windows internals, Mark Russinovich a David Solomon.
  • Windows Sysinternals Správa istrator reference Oficiální průvodce nástroji 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ů jejich použití v reálném světě.

DownloadStáhnout ProcDump(714 KB)

Stáhnout ProcDump pro Linux (GitHub)

Běží na:

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

Další informace