ProcDump v12.0

Por Mark Russinovich e Andrew Richards

Publicado: 7 de maio de 2026

Baixar Baixar ProcDump(1.2 MB)

Baixar ProcDump para Linux (GitHub)
Baixar ProcDump para Mac (GitHub)

Criado com ZoomIt

Introdução

ProcDump é um utilitário de linha de comando cujo objetivo principal é monitorizar um aplicativo para picos de utilização de CPU e gerar despejos de falha durante um pico que um administrador ou desenvolvedor pode usar para determinar a causa do pico. O ProcDump também inclui monitoramento de janelas suspensas (usando a mesma definição de travamento de janela que o Windows e o Gerenciador de Tarefas usam), monitoramento de exceções sem tratamento e pode gerar despejos com base nos valores dos contadores de desempenho do sistema. Ele também pode servir como um utilitário de despejo de processo geral que você pode incorporar em outros scripts.

Usando ProcDump

Uso da captura:

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

Uso da instalação:

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

Desinstalar o uso:

procdump.exe -u

Tipos de despejo:

Tipo de despejo Descrição
-mm Escreva um ficheiro de despejo do tipo 'Mini'. (predefinição)
- Inclui memória referenciada direta e indiretamente (pilhas e o que elas referenciam).
- Inclui todos os metadados (Processo, Thread, Módulo, Handle, Address Space, etc.).
-ma Escreva um arquivo de despejo 'Completo'.
- Inclui toda a memória (Imagem, Mapeada e Privada).
- Inclui todos os metadados (Processo, Thread, Módulo, Handle, Address Space, etc.).
-mt Escreva um ficheiro de despejo 'Triagem'.
- Inclui memória diretamente referenciada (pilhas de memória).
- Inclui metadados limitados (Process, Thread, Module e Handle).
- A remoção de informações sensíveis é tentada, mas não garantida.
-mp Escreva um ficheiro de despejo 'MiniPlus'.
- Inclui toda a memória privada e toda a imagem de leitura/escrita ou memória mapeada.
- Inclui todos os metadados (Processo, Thread, Módulo, Handle, Address Space, etc.).
- Para minimizar o tamanho, a maior área de memória privada acima de 512MB é excluída.
  Uma área de memória é definida como a soma de alocações de memória do mesmo tamanho.
  O despejo é tão detalhado quanto um despejo completo, mas 10% a 75% do tamanho.
- Nota: Os processos CLR são despejados como Full (-ma) devido a limitações de depuração.
-mc Escreva um ficheiro de despejo 'Personalizado'.
- Inclui a memória e os metadados definidos pela máscara especificada MINIDUMP_TYPE (Hex).
-md Escreva um arquivo de despejo 'Callback'.
- Inclui a memória definida pela MiniDumpWriteDump rotina de retorno de chamada nomeada MiniDumpCallbackRoutine da DLL especificada.
- Inclui todos os metadados (Processo, Thread, Módulo, Handle, Address Space, etc.).
-mk Também escreva um ficheiro de despejo de 'Kernel'.
- Inclui as pilhas de núcleo dos threads no processo.
- O sistema operacional não suporta um dump do kernel (-mk) ao usar um clone (-r).
- Ao usar vários tamanhos de dump, é gerado um dump de kernel para cada tamanho de dump.

Condições:

Condição Descrição
-a Evite interrupções. Requer -r. Se o gatilho fizer com que o destino seja suspenso por um tempo prolongado devido a um limite de despejo simultâneo excedido, o gatilho será ignorado.
-em Evite interrupções no Timeout. Cancele a coleção do desencadeador em N segundos.
-b Trate os pontos de interrupção de depuração como exceções (caso contrário, ignore-os).
-c Limite de CPU acima do qual criar um dump do processo.
-cl Limite de CPU, abaixo do qual se cria um dump do processo.
-CC Adicione a cadeia de caracteres especificada ao Comentário de despejo gerado.
-e Escreva um despejo quando o processo encontrar uma exceção não tratada.
Inclua o 1 para criar um dump em exceções de primeira chance.
Adicionar -ld para criar um despejo quando uma DLL (módulo) é carregada (filtragem se aplica).
Adicionar -ud para criar um despejo quando uma DLL (módulo) é descarregada (filtragem se aplica).
Adicione -ct para criar um despejo quando uma thread é criada.
Adicionar -et para criar um despejo quando um thread é encerrado.
-f Filtre (inclua) o conteúdo de exceções, registro de depuração e nome de arquivo em DLL load/unload. Curingas (*) são suportados.
-fx Filtre (exclua) o conteúdo de exceções, registo de depuração e nome de ficheiro durante a carga/descarga de DLL. Caracteres universais (*) são suportados.
-g Execute como um debugger nativo num processo gerido (sem interoperabilidade).
-h Escreva dump se o processo tiver uma janela suspensa (não responde a mensagens de janela por pelo menos 5 segundos).
-k Termine o processo após a clonagem (-r) ou no final da coleta de despejo.
-l Exiba o log de depuração do processo.
-m Limiar de confirmação de memória em MB no qual será gerado um ficheiro dump.
-ml Acionar quando o comprometimento de memória cair abaixo do valor de MB especificado.
-n Número de dumps para gravar antes de sair.
-o Sobrescreva um ficheiro de despejo existente.
-p Acionar quando o Contador de Desempenho estiver no Limite especificado ou excedê-lo. Alguns contadores e/ou nomes de instância podem diferenciar maiúsculas de minúsculas.
-pl Acione quando o Contador de Desempenho ficar abaixo do Limite especificado.
-r Despeje usando um clone. O limite simultâneo é opcional (padrão 1, máximo 5). O sistema operacional não suporta um dump de kernel (-mk) ao usar um clone (-r). CUIDADO: um alto valor de simultaneidade pode afetar o desempenho do sistema.
- Windows 7: Usa reflexão. O SO não suporta -e.
- Windows 8.0: Usa reflexão. O SO não suporta -e.
- Windows 8.1+: Usar PSS. Todos os tipos de gatilho são suportados.
-s Segundos consecutivos antes de o despejo ser gravado (o padrão é 10).
-t Gere um dump ao término do processo.
-u Trate o uso da CPU em relação a um único núcleo (usado com -c).
-v DEBUG ONLY: Saída detalhada.
-w Aguarde pelo lançamento do processo especificado, caso não esteja em execução.
-wer Enfileire o despejo (maior) para o Relatório de Erros do Windows.
-x Inicie a imagem especificada com argumentos opcionais. Se for um Aplicativo ou Pacote da Loja, o ProcDump será iniciado na próxima ativação (apenas).
-y HIDDEN: Armazene a ativação do aplicativo.
-64 Por padrão, o ProcDump capturará um despejo de 32 bits de um processo de 32 bits quando executado no Windows de 64 bits. Esta opção permite a criação de um ficheiro de despejo de 64 bits. Use apenas para depuração do subsistema WOW64.

Contrato de Licença:

Use a -accepteula opção de linha de comando para aceitar automaticamente o contrato de licença Sysinternals.

Rescisão automatizada:

-cancel <Target Process PID>

Usar essa opção ou definir um evento com o nome ProcDump-<PID> é o mesmo que digitar Ctrl+C para encerrar o ProcDump normalmente. A terminação graciosa garante que o processo seja retomado se uma captura estiver ativa. O cancelamento aplica-se a TODAS as instâncias ProcDump que monitorizam o processo.

Nome do arquivo:

Nome do arquivo de despejo padrão: PROCESSNAME_YYMMDD_HHMMSS.dmp

São suportadas as seguintes substituições:

Substituição Explicação
NOME do PROCESSO Nome do Processo
PID ID do processo
CÓDIGO DE EXCEÇÃO Código de Exceção
AAMMDD Ano/Mês/Dia
HHMMSS Hora/Minuto/Segundo

Exemplos

  • Escreva um mini dump de um processo chamado 'notepad' (só pode haver uma correspondência):

    C:\>procdump notepad
    
  • Escreva um despejo completo de um processo com PID '4572':

    C:\>procdump -ma 4572
    
  • Escreva primeiro um Mini, e depois, um despejo completo de um processo com PID '4572':

    C:\>procdump -mm -ma 4572
    
  • Escreva 3 mini dumps com 5 segundos de intervalo de um processo chamado 'notepad'.

    C:\>procdump -n 3 -s 5 notepad
    
  • Escreva até 3 Mini dumps de um processo chamado 'consumir' quando ele exceder 20% de uso da CPU por cinco segundos:

    C:\>procdump -n 3 -s 5 -c 20 consume
    
  • Escreva um minidump para um processo chamado 'hang.exe' quando uma das suas janelas não responder por mais de 5 segundos:

    C:\>procdump -h hang.exe
    
  • Escreva um dump completo e kernel para um processo chamado 'hang.exe' quando uma de suas janelas não responder por mais de 5 segundos:

    C:\>procdump -ma -mk -h hang.exe
    
  • Escreva um minidump de um processo chamado 'outlook' quando o uso total da CPU do sistema ultrapassar 20% por 10 segundos.

    C:\>procdump outlook -s 10 -p "\Processor(_Total)\% Processor Time" 20
    
  • Escreva um despejo completo de um processo chamado 'outlook' quando a contagem de identificadores do Outlook exceder 10.000:

    C:\>procdump -ma outlook -p "\Process(Outlook)\Handle Count" 10000
    
  • Escreva um dump completo do 'svchost' PID 1234, instância #87, quando a contagem de handles exceder 10.000:

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

    Nota: Contadores de várias instâncias
    Se houver várias instâncias do contador, precisarás incluir o nome e/ou o número da instância.

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

    Sistemas operativos mais antigos exigem que seja acrescentado o PID para \Process contadores.

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

    Dica: Use o Monitor de Desempenho para exibir os contadores (especialmente a diferenciação de maiúsculas e minúsculas).
    Dica: Para contadores baseados em \Process(*), use a PowerShell para mapear um PID para o seu #NNN.

    Get-Counter -Counter "\Process(*)\ID Process"
    
  • Escreva um despejo completo para uma exceção de 2ª chance:

    C:\>procdump -ma -e w3wp.exe
    
  • Escreva um despejo de memória completo para uma exceção de primeira ou segunda oportunidade:

    C:\>procdump -ma -e 1 w3wp.exe
    
  • Escreva um dump completo de uma mensagem de string de depuração:

    C:\>procdump -ma -l w3wp.exe
    
  • Gerar até 10 dumps completos de cada exceção de 1ª ou 2ª chance do w3wp.exe.

    C:\>procdump -ma -n 10 -e 1 w3wp.exe
    
  • Escreva até 10 despejos completos se o código/nome/msg de uma exceção contiver 'NotFound':

    C:\>procdump -ma -n 10 -e 1 -f NotFound w3wp.exe
    
  • Escreva até 10 despejos completos se uma mensagem de cadeia de caracteres de depuração contiver 'NotFound':

    C:\>procdump -ma -n 10 -l -f NotFound w3wp.exe
    
  • Aguarde um processo chamado 'bloco de notas' (e monitore-o em busca de exceções):

    C:\>procdump -e -w notepad
    
  • Inicie um processo chamado 'bloco de notas' (e monitore-o em busca de exceções):

    C:\>procdump -e -x c:\dumps notepad
    
  • Registe-se para iniciar e tente ativar uma 'aplicação' da loja. Uma nova instância do ProcDump será iniciada quando for ativada:

    C:\>procdump -e -x c:\dumps Microsoft.BingMaps_8wekyb3d8bbwe!AppexMaps
    
  • Inscreva-se para o lançamento de um 'pacote' de loja. Uma nova instância do ProcDump será iniciada quando for ativada (manualmente):

    C:\>procdump -e -x c:\dumps Microsoft.BingMaps_1.2.0.136_x64__8wekyb3d8bbwe
    
  • Escreva um despejo MiniPlus do Armazenamento de Informações do Microsoft Exchange quando ele tiver uma exceção não tratada:

    C:\>procdump -mp -e store.exe
    
  • Mostre os códigos/nomes de exceção de w3wp.exe sem gerar um dump.

    C:\>procdump -e 1 -f "" w3wp.exe
    
  • Windows 7/8.0; Use o Reflection para reduzir a interrupção por 5 gatilhos consecutivos:

    C:\>procdump -r -ma -n 5 -s 15 wmplayer.exe
    
  • Windows 8.1+; Use o PSS para reduzir a interrupção de 5 gatilhos simultâneos:

    C:\>procdump -r 5 -ma -n 5 -s 15 wmplayer.exe
    
  • Instale o ProcDump como o depurador postmortem (AeDebug):

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

    .. ou..

    C:\Dumps>procdump -ma -i
    
  • Desinstale o ProcDump como depurador postmortem do (AeDebug):

    C:\>procdump -u
    

Veja uma lista de exemplos de linhas de comando (os exemplos estão listados acima):

C:\>procdump -? -e
  • Windows Internals Book As atualizações oficiais e página errata para o livro definitivo sobre Windows internals, por Mark Russinovich e David Solomon.
  • Referência do administrador do Windows Sysinternals O guia oficial dos utilitários Sysinternals por Mark Russinovich e Aaron Margosis, incluindo descrições de todas as ferramentas, seus recursos, como usá-las para solução de problemas e exemplos de casos reais de seu uso.

Baixar Baixar ProcDump(1.2 MB)

Baixar ProcDump para Linux (GitHub)
Baixar ProcDump para Mac (GitHub)

Funciona em:

  • Cliente: Windows 11 e superior.
  • Servidor: Windows Server 2016 e superior.

Saiba mais