Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Di Mark Russinovich e Andrew Richards
Pubblicato: 7 maggio 2026
Download ProcDump(1,2 MB)
Scaricare ProcDump per Linux (GitHub)
Scaricare ProcDump per Mac (GitHub)
Creato con ZoomIt
Introduzione
ProcDump è un'utilità della riga di comando il cui scopo principale è monitorare un'applicazione per rilevare picchi della CPU e generare dump di arresto anomalo durante un picco, permettendo a un amministratore o a uno sviluppatore di determinare la causa del picco. ProcDump include anche il monitoraggio delle finestre bloccate (usando la stessa definizione di finestra bloccata applicata da Windows e Task Manager) e il monitoraggio delle eccezioni non gestite e può generare dump basati sui valori dei contatori delle prestazioni di sistema. Può anche svolgere la funzione di utilità generale di dump dei processi da incorporare in altri script.
Utilizzo di ProcDump
Utilizzo di acquisizione:
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, ...]}
}
Utilizzo di installazione:
procdump.exe -i [Dump_Folder]
[-mm] [-ma] [-mt] [-mp] [-mc <Mask>] [-md <Callback_DLL>] [-mk]
[-r]
[-at <Timeout>]
[-k]
[-wer]
Utilizzo di disinstallazione:
procdump.exe -u
Tipi di dump:
| Tipo di dump | Descrizione |
|---|---|
| -mm | Scrivere un file di dump Mini. (predefinito) - Include la memoria a cui si fa riferimento direttamente e indirettamente (stack e i relativi riferimenti). - Include tutti i metadati (processo, thread, modulo, handle, spazio indirizzi e così via). |
| -ma | Scrivi un file di dump «Completo». - Include tutta la memoria (immagine, mappata e privata). - Include tutti i metadati (processo, thread, modulo, handle, spazio indirizzi e così via). |
| -mt | Scrive un file di dump "Triage". - Include la memoria a cui si fa riferimento in modo diretto (stack). - Include metadati limitati (processo, thread, modulo e handle). - Viene tentata, ma non garantita, la rimozione di informazioni riservate. |
| -mp | Scrivi un file di dump 'MiniPlus'. - Include tutta la memoria privata e tutta la memoria mappata o di lettura/scrittura delle immagini. - Include tutti i metadati (processo, thread, modulo, handle, spazio indirizzi e così via). - Per ridurre al minimo le dimensioni, viene esclusa l'area di memoria privata più grande, se superiore a 512 MB. Un'area di memoria viene definita come somma delle allocazioni di memoria di pari dimensioni. Il dump è dettagliato come un dump completo, ma di dimensioni inferiori del 10%-75%. - Nota: a causa delle limitazioni di debug, il dump dei processi CLR viene eseguito come completo (-ma). |
| -mc | Scrive un file di dump "Personalizzato". - Include la memoria e i metadati definiti dalla maschera MINIDUMP_TYPE specificata (esadecimale). |
| -md | Salva un file di dump 'Callback'. - Include la memoria definita dalla routine di callback MiniDumpWriteDump (denominata MiniDumpCallbackRoutine) della DLL specificata.- Include tutti i metadati (processo, thread, modulo, handle, spazio indirizzi e così via). |
| -mk | Scrive anche un file di dump *Kernel*. - Include gli stack del kernel dei thread inclusi nel processo. - Il sistema operativo non supporta un dump del kernel ( -mk) quando si usa un clone (-r).- Quando si usano più dimensioni del file di dump, viene generato un dump del kernel per ogni dimensione del dump. |
Condizioni:
| Condizione | Descrizione |
|---|---|
| -a | Evitare interruzioni di servizio. Richiede -r. Se il trigger causerà la sospensione della destinazione per un tempo prolungato a causa del superamento del limite di dump simultanei, il trigger verrà ignorato. |
| -at | Evitare interruzioni durante il timeout. Annullare l'esecuzione del trigger fra N secondi. |
| -b | Considerare i punti di interruzione di debug come eccezioni (in caso contrario, vengono ignorati). |
| -c | Soglia della CPU al di sopra della quale viene creato un dump del processo. |
| -cl | Soglia della CPU al di sotto della quale viene creato un dump del processo. |
| -dc | Aggiungere la stringa specificata al commento del dump generato. |
| -e | Scrivere un dump quando il processo rileva un'eccezione non gestita. Includere 1 per creare dump sulle eccezioni di prima possibilità.Aggiungere -ld per creare un dump quando viene caricata una DLL (modulo): viene applicato un filtro.Aggiungere -ud per creare un dump quando viene scaricata una DLL (modulo): viene applicato un filtro.Aggiungere -ct per creare un dump quando viene creato un thread.Aggiungere -et per creare un dump quando un thread termina. |
| -f | Filtrare (includere) il contenuto delle eccezioni, la registrazione di debug e il nome del file nel momento in cui viene caricata/scaricata la DLL. Il supporto per i caratteri jolly è fornito. |
| -fx | Filtrare (escludere) il contenuto delle eccezioni, la registrazione di debug e il nome del file durante il caricamento/scaricamento della DLL. I caratteri jolly sono supportati. |
| -g | Esegui come debugger nativo in un processo gestito (senza interop). |
| -h | Scrivere un dump se il processo ha una finestra bloccata (non risponde ai messaggi della finestra per almeno 5 secondi). |
| -k | Terminare il processo dopo la clonazione (-r) o alla fine della raccolta di dump. |
| -l | Visualizzare il log di debug del processo. |
| -m | Soglia di commit della memoria (in MB) in corrispondenza della quale creare un dump. |
| -ml | Attivare quando il commit della memoria scende sotto il valore di MB specificato. |
| -n | Numero di dump da scrivere prima di uscire. |
| -o | Sovrascrivere un file di dump esistente. |
| -p | Attivare quando il contatore delle prestazioni raggiunge o supera la soglia specificata. Alcuni contatori e/o nomi di istanza possono essere sensibili alle maiuscole e minuscole. |
| -pl | Attivare quando il contatore delle prestazioni scende al di sotto della soglia specificata. |
| -r | Eseguire il dump usando un clone. Il limite simultaneo è facoltativo (valore predefinito 1, massimo 5). Il sistema operativo non supporta un dump del kernel (-mk) quando si usa un clone (-r).
ATTENZIONE: un valore di concorrenza elevato può influire sulle prestazioni del sistema.- Windows 7: usa la reflection. Il sistema operativo non supporta -e.- Windows 8.0: usa la Riflessione. Il sistema operativo non supporta -e.- Windows 8.1+: usa PSS. Sono supportati tutti i tipi di trigger. |
| -s | Secondi consecutivi prima che venga scritto un dump (il valore predefinito è 10). |
| -t | Scrivere un dump al termine del processo. |
| -u | Considerare l'utilizzo della CPU in relazione a un singolo core (utilizzato con -c). |
| -v | DEBUG ONLY (SOLO DEBUG): output dettagliato. |
| -w | Attendere l'avvio del processo specificato, se non è in esecuzione. |
| -wer | Accodare il dump (più grande) alla Segnalazione errori di Windows. |
| -x | Avvia l'immagine specificata con argomenti opzionali. Se si tratta di un'applicazione Store o di un pacchetto, ProcDump verrà avviato all'attivazione successiva (solo). |
| -y | HIDDEN (NASCOSTO): attivazione dell'applicazione Store. |
| -64 | Per impostazione predefinita, ProcDump acquisisce un dump a 32 bit di un processo a 32 bit eseguito in Windows a 64 bit. Questa opzione sostituisce l'impostazione predefinita per creare un dump a 64 bit. Usare solo per il debug di un sottosistema WOW64. |
Contratto di licenza:
Usare l'opzione della riga di comando -accepteula per accettare automaticamente il contratto di licenza Sysinternals.
Chiusura automatizzata:
-cancel <Target Process PID>
L'uso di questa opzione o l'impostazione di un evento con il nome ProcDump-<PID> equivale a digitare CTRL+C per terminare normalmente ProcDump. Quando un processo viene terminato normalmente, può essere ripristinato se è attiva un'acquisizione. L'annullamento si applica a TUTTE le istanze di ProcDump che monitorano il processo.
Nome file:
Nome file di dump predefinito: PROCESSNAME_YYMMDD_HHMMSS.dmp
Sono supportate le seguenti sostituzioni:
| Sostituzione | Spiegazione |
|---|---|
| PROCESSNAME | Nome del processo |
| PID | ID del processo |
| EXCEPTIONCODE | Codice eccezione |
| AAMMGG | Anno/Mese/Giorno |
| HHMMSS | Ora/Minuti/Secondi |
Esempi
Scrivere un mini dump di un processo denominato "notepad" (può esistere una sola corrispondenza):
C:\>procdump notepadScrivere un dump Completo di un processo con PID "4572":
C:\>procdump -ma 4572Eseguire prima un dump mini e quindi un dump completo di un processo con PID "4572":
C:\>procdump -mm -ma 4572Scrivere 3 minidump a intervalli di 5 secondi di un processo chiamato "notepad".
C:\>procdump -n 3 -s 5 notepadScrivere fino a 3 Mini dump di un processo chiamato "consume" quando il suo utilizzo della CPU supera il 20% per cinque secondi.
C:\>procdump -n 3 -s 5 -c 20 consumeScrivere un minidump per un processo denominato hang.exe quando una delle sue finestre è non responsiva per più di 5 secondi.
C:\>procdump -h hang.exeScrivere un dump completo e kernel per un processo chiamato "hang.exe" quando una delle sue finestre non risponde per più di 5 secondi.
C:\>procdump -ma -mk -h hang.exeScrivere un minidump di un processo denominato "outlook" quando l'utilizzo totale della CPU del sistema supera il 20% per 10 secondi.
C:\>procdump outlook -s 10 -p "\Processor(_Total)\% Processor Time" 20Scrivere 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" 10000Scrivere un dump completo di 'svchost' PID 1234, istanza #87, quando il numero di handle supera 10.000:
C:\>procdump -ma 1234 -p "\Process(svchost#87)\Handle Count" 10000Nota: più contatori di istanze
Se sono presenti più istanze del contatore, è necessario includere il nome e/o il numero di istanza.\Processor(NNN)\% Processor Time \Thermal Zone Information(<name>)\Temperature \Process(<name>[#NNN])\<counter>I sistemi operativi meno recenti richiedono di aggiungere il PID per i contatori
\Process.\Process(<name>[_PID])\<counter>Suggerimento: usare il Monitoraggio delle prestazioni per visualizzare i contatori (in particolare, la distinzione tra maiuscole e minuscole).
Suggerimento: per i contatori basati su\Process(*), usare PowerShell per eseguire il mapping di un PID a#NNN.Get-Counter -Counter "\Process(*)\ID Process"Scrivere un dump completo per un'eccezione di secondo grado:
C:\>procdump -ma -e w3wp.exeScrivere un dump completo per un'eccezione di primo o secondo tentativo:
C:\>procdump -ma -e 1 w3wp.exeScrivere un dump completo per un messaggio di stringa di debug.
C:\>procdump -ma -l w3wp.exeScrivere fino a 10 dump completi per ogni eccezione di prima o seconda possibilità di w3wp.exe:
C:\>procdump -ma -n 10 -e 1 w3wp.exeScrivere fino a 10 dump completi se il codice/nome/messaggio di un'eccezione contiene '
NotFound':C:\>procdump -ma -n 10 -e 1 -f NotFound w3wp.exeScrivere fino a 10 dump Completi se un messaggio stringa di debug contiene '
NotFound':C:\>procdump -ma -n 10 -l -f NotFound w3wp.exeAttendere un processo denominato "notepad" (e monitorarlo per eventuali eccezioni):
C:\>procdump -e -w notepadAvviare un processo denominato "notepad" (e monitorarlo per eventuali eccezioni):
C:\>procdump -e -x c:\dumps notepadRegistrarsi per l'avvio e tentare di attivare un'applicazione Store. Nel momento in cui verrà attivata, si avvierà una nuova istanza ProcDump:
C:\>procdump -e -x c:\dumps Microsoft.BingMaps_8wekyb3d8bbwe!AppexMapsIscriviti per il lancio di un pacchetto per negozio. Nel momento in cui verrà attivato (manualmente), si avvierà una nuova istanza ProcDump:
C:\>procdump -e -x c:\dumps Microsoft.BingMaps_1.2.0.136_x64__8wekyb3d8bbweScrivere un dump MiniPlus dell'archivio delle informazioni di Microsoft Exchange quando si verifica un'eccezione non gestita.
C:\>procdump -mp -e store.exeVisualizzare, senza scrivere un dump, i codici/nomi delle eccezioni di w3wp.exe:
C:\>procdump -e 1 -f "" w3wp.exeWindows 7/8.0; usare Reflection per ridurre l'interruzione in caso di 5 trigger consecutivi:
C:\>procdump -r -ma -n 5 -s 15 wmplayer.exeWindows 8.1+; usa PSS per ridurre l'interruzione in caso di 5 trigger concomitanti:
C:\>procdump -r 5 -ma -n 5 -s 15 wmplayer.exeInstallare ProcDump come debugger postmortem (AeDebug):
C:\>procdump -ma -i c:\dumps..oppure..
C:\Dumps>procdump -ma -iDisinstallare ProcDump in qualità di debugger postmortem (AeDebug):
C:\>procdump -u
Vedere un elenco di righe di comando di esempio (gli esempi sono elencati sopra):
C:\>procdump -? -e
Collegamenti correlati
- Libro Windows Internals La pagina ufficiale degli aggiornamenti e delle correzioni del libro definitivo su Windows Internals, di Mark Russinovich e David Solomon.
- Riferimento per l'amministratore di Windows Sysinternals La guida ufficiale alle utilità Sysinternals di Mark Russinovich e Aaron Margosis, che include la descrizione di tutti gli strumenti, le relative funzionalità, l'uso per la risoluzione dei problemi e casi reali di utilizzo.
Download ProcDump(1,2 MB)
Scaricare ProcDump per Linux (GitHub)
Scaricare ProcDump per Mac (GitHub)
In esecuzione su:
- Client: Windows 11 e versioni successive.
- Server: Windows Server 2016 e versioni successive.
Ulteriori informazioni
- Strumenti di deframmentazione: n. 9 - ProcDump Questo episodio di Defrag Tools illustra quali elementi acquisisce lo strumento e le durate delle interruzioni previste
- Strumenti per la deframmentazione: #10 - ProcDump - Opzioni di Trigger Questo episodio illustra le opzioni di trigger, in particolare le eccezioni di primo e secondo tentativo.
- Strumenti di deframmentazione: #11 - ProcDump - Windows 8 & Process Monitor Questo episodio illustra il supporto delle applicazioni moderne e il supporto per la registrazione di Process Monitor