ProcDump v10.11

Di Mark Russinovich e Andrew Richards

Data di pubblicazione: 18/08/2021

DownloadDownload ProcDump(680 KB)

Scaricare ProcDump per Linux (GitHub)

Introduzione

ProcDump è un'utilità della riga di comando il cui scopo principale è il monitoraggio di un'applicazione per i picchi di CPU e la generazione di dump di arresto anomalo durante un picco che un amministratore o uno sviluppatore può usare per determinare la causa del picco. ProcDump include anche il monitoraggio delle finestre bloccate (usando la stessa definizione di un blocco di finestra usato da Windows e Task Manager), il monitoraggio delle eccezioni non gestito e può generare dump in base ai valori dei contatori delle prestazioni del sistema. Può anche fungere da utilità generale di dump del processo che è possibile incorporare in altri script.

Uso di ProcDump

Utilizzo acquisizione:

procdump.exe [-mm] [-ma] [-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]]]
             [-l]
             [-t]
             [-f  Include_Filter, ...]
             [-fx Exclude_Filter, ...]
             [-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, ...]}
             }

Installare l'utilizzo:

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

Disinstalla utilizzo:

procdump.exe -u
Parametro Descrizione
-a Evitare interruzioni. Richiede -r. Se il trigger causerà la sospensione della destinazione per un periodo di tempo prolungato a causa di un limite di dump simultaneo superato, il trigger verrà ignorato.
-at Evitare interruzioni al timeout. Annullare la raccolta del trigger in N secondi.
-b Considerare i punti di interruzione di debug come eccezioni (in caso contrario ignorarli).
-c Soglia cpu in corrispondenza della quale creare un dump del processo.
-cl Soglia della CPU al di sotto della quale creare un dump del processo.
-d Richiamare la routine di callback minidump denominata MiniDumpCallbackRoutine della DLL specificata.
-e Scrivere un dump quando il processo rileva un'eccezione non gestita. Includere il valore 1 per creare dump sulle eccezioni di prima probabilità.
-f Filtrare le prime eccezioni di probabilità. I caratteri jolly (*) sono supportati. Per visualizzare solo i nomi senza dump, usare un filtro vuoto ("").
-fx Filtrare (escludere) per il contenuto delle eccezioni e la registrazione di debug. Sono supportati caratteri jolly.
-g Eseguire come debugger nativo in un processo gestito (nessuna interoperabilità).
-h Dump di scrittura se il processo ha una finestra bloccata (non risponde ai messaggi della finestra per almeno 5 secondi).
-i Installare ProcDump come debugger postmortem di AeDebug. Solo -ma, -mp, -d e -r sono supportati come opzioni aggiuntive.
-k Terminare il processo dopo la clonazione (-r) o alla fine della raccolta di dump
-l Visualizzare la registrazione di debug del processo.
-m Soglia di commit della memoria in MB in corrispondenza della quale creare un dump.
-ma Scrivere un file di dump con tutta la memoria del processo. Il formato di dump predefinito include solo informazioni sul thread e sull'handle.
-mc Scrivere un file di dump personalizzato. Includere la memoria definita dall'MINIDUMP_TYPE mask (Hex) specificata.
-md Scrivere un file di dump del callback. Includere la memoria definita dalla routine di callback MiniDumpWriteDump denominata MiniDumpCallbackRoutine della DLL specificata.
-mk Scrivere anche un file di dump del kernel. Include gli stack del kernel dei thread nel processo. Il sistema operativo non supporta un dump del kernel (-mk) quando si usa un clone (-r). Quando si usano più dimensioni di dump, viene eseguito un dump del kernel per ogni dimensione del dump.
-ml Attivare quando il commit della memoria scende al di sotto del valore MB specificato.
-mm Scrivere un file di mini dump (impostazione predefinita).
-mp Scrivere un file dump con thread e gestire le informazioni e tutta la memoria del processo di lettura/scrittura. Per ridurre al minimo le dimensioni del dump, vengono cercate aree di memoria superiori a 512 MB e, se presente, l'area più grande viene esclusa. Un'area di memoria è la raccolta delle stesse aree di allocazione della memoria di dimensioni. La rimozione di questa memoria (cache) riduce Exchange e SQL Server dump di oltre il 90%.
-n Numero di dump da scrivere prima dell'uscita.
-o Sovrascrivere un file di dump esistente.
-p Attivare il contatore delle prestazioni specificato quando viene superata la soglia. Nota: per specificare un contatore di processo quando sono in esecuzione più istanze del processo, usare l'ID processo con la sintassi seguente: "\Process(<name>_<pid>)\counter"
-pl Attivare quando il contatore delle prestazioni scende al di sotto del valore specificato.
-r Eseguire il dump usando un clone. Il limite simultaneo è facoltativo (valore predefinito 1, massimo 5).
ATTENZIONE: un valore di concorrenza elevato può influire sulle prestazioni del sistema.
- Windows 7 : usa reflection. Il sistema operativo non supporta -e.
- Windows 8.0 : usa reflection. Il sistema operativo non supporta -e.
- Windows 8.1+: usa PSS. Sono supportati tutti i tipi di trigger.
-s Secondi consecutivi prima della scrittura del dump (il valore predefinito è 10).
-t Scrivere un dump al termine del processo.
-u Trattare l'utilizzo della CPU rispetto a un singolo core (usato con -c).
Come unica opzione, Disinstalla ProcDump come debugger postmortem.
-w Attendere che il processo specificato venga avviato se non è in esecuzione.
-wer Accodare il dump (più grande) a Segnalazione errori Windows.
-x Avviare l'immagine specificata con argomenti facoltativi. Se è un'applicazione o un pacchetto dello Store, ProcDump inizierà l'attivazione successiva (solo).
-64 Per impostazione predefinita ProcDump acquisisce un dump a 32 bit di un processo a 32 bit durante l'esecuzione in Windows a 64 bit. Questa opzione esegue l'override per creare un dump a 64 bit. Usare solo per il debug del sottosistema WOW64.
-? Usare -? -e per visualizzare le righe di comando di esempio.

Se si omette il nome del file di dump, il valore predefinito è <processname>_<datetime>.dmp.

Usare l'opzione della riga di comando per accettare automaticamente il -accepteula contratto di licenza Sysinternals.

Terminazione automatica:

L'impostazione di un evento con nome ProcDump-<PID> corrisponde alla digitazione di CTRL+C per terminare in modo normale ProcDump

Filename:

Nome file dump predefinito: PROCESSNAME_YYMMDD_HHMMSS.dmp

Sono supportate le sostituzioni seguenti:

Sostituzione Spiegazione
PROCESSNAME Process Name
ID di processo PID
EXCEPTIONCODE Codice eccezione
AAMMGG Anno/mese/giorno
HHMMSS Ora/minuto/secondo

Esempio

Scrivere un mini dump di un processo denominato "blocco note" (una sola corrispondenza può esistere):

Blocco note C:\>procdump

Scrivere un dump completo di un processo con PID '4572':

C:\>procdump -ma 4572

Scrivere 3 mini dump a parte 5 secondi a parte un processo denominato 'blocco note':

C:\>procdump -s 5 -n 3 blocco note

Scrivere fino a 3 mini dump di un processo denominato 'consume' quando supera il 20% dell'utilizzo della CPU per cinque secondi:

C:\>procdump -c 20 -s 5 -n 3 utilizzano

Scrivere un mini dump per un processo denominato "hang.exe" quando uno di esso non risponde per più di 5 secondi:

C:\>procdump -h hang.exe hungwindow.dmp

Scrivere un mini dump di un processo denominato "outlook" quando l'utilizzo totale della CPU del sistema supera il 20% per 10 secondi:

C:>\procdump outlook -p "\Processor(_Total)\% Processor Time" 20

Scrivere un dump completo di un processo denominato "outlook" quando il numero di handle di Outlook supera 10.000:

C:>\procdump -ma outlook -p "\Process(Outlook)\Handle Count" 10000

Scrivere un dump MiniPlus dell'Archivio informazioni di Microsoft Exchange quando ha un'eccezione non gestita:

C:\>procdump -mp -e store.exe

Visualizzare senza scrivere un dump, i codici di eccezione o i nomi di w3wp.exe:

C:\>procdump -e 1 -f "" w3wp.exe

Scrivere un mini dump di w3wp.exe se il codice/il nome di un'eccezione contiene "NotFound":

C:\>procdump -e 1 -f NotFound w3wp.exe

Avviare un processo e quindi monitorarlo per le eccezioni:

C:\>procdump -e 1 -f "" -x c:\dumps consume.exe

Registrare per avviare e tentare di attivare un'applicazione moderna. Una nuova istanza di ProcDump verrà avviata quando viene attivata per monitorare le eccezioni:

C:\>procdump -e 1 -f "" -x c:\dumpsMicrosoft.BingMaps_8wekyb3d8bbwe! AppexMaps

Registrarsi per l'avvio di un 'pacchetto' moderno. Una nuova istanza di ProcDump verrà avviata quando viene attivata manualmente per monitorare le eccezioni:

C:\>procdump -e 1 -f "" -x c:\dumps Microsoft.BingMaps_1.2.0.136_x64__8wekyb3d8bbwe

Registrare come debugger JUST-in-Time (AeDebug). Rende i dump completi in c:\dumps:

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

Vedere un elenco di righe di comando di esempio (gli esempi sono elencati sopra):

C:\>procdump -? -E

DownloadDownload ProcDump(680 KB)

Scaricare ProcDump per Linux (GitHub)

Viene eseguito su:

  • Client: Windows 8.1 e versioni successive.
  • Server: Windows Server 2012 e versioni successive.

Altre informazioni