ProcDump v10.11

Por Mark Russinovich e Andrew Richards

Publicado: 08/18/2021

DownloadBaixar ProcDump(680 KB)

Baixar ProcDump para Linux (GitHub)

Introdução

ProcDump é um utilitário de linha de comando cujo principal objetivo é monitorizar uma aplicação para picos de CPU e gerar depósitos de colisão durante um pico que um administrador ou desenvolvedor pode usar para determinar a causa do pico. O ProcDump também inclui a monitorização da janela pendurada (utilizando a mesma definição de um hang de janela que Windows e o uso do Gestor de Tarefas), uma monitorização de exceção não manipulada e pode gerar despejos com base nos valores dos contadores de desempenho do sistema. Também pode servir como um utilitário de despejo de processo geral que você pode incorporar em outros scripts.

Usando ProcDump

Utilização de captura:

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

Instalar a utilização:

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

Desinstalar a utilização:

procdump.exe -u
Parâmetro Descrição
- um Evite a interrupção. Requer -r. Se o gatilho fizer com que o alvo suspenda por um período 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 gatilho em segundos N.
-b Trate os pontos de rutura de depuração como exceções (caso contrário, ignore-os).
-c Limiar de CPU para criar uma descarga do processo.
-cl Limiar de CPU abaixo do qual criar uma descarga do processo.
-d Invoque a rotina de chamada minidump chamada MiniDumpCallbackRoutine do DLL especificado.
-e Escreva uma lixeira quando o processo encontrar uma exceção sem manipulação. Inclua o 1 para criar despejo em exceções de primeira oportunidade.
-f Filtra as primeiras exceções. Wildcards (*) são suportados. Para apenas mostrar os nomes sem despejar, utilize um filtro em branco ("").
-fx Filtrar (excluir) sobre o conteúdo das exceções e depurar a registar registo. Os wildcards são apoiados.
-g Corra como um depurado nativo num processo gerido (sem interop).
-h Escreva o despejo se o processo tiver uma janela pendurada (não responde às mensagens de janela durante pelo menos 5 segundos).
-i Instale o ProcDump como o depuração pós-morte do AeDebug. Apenas -ma, -mp, -d e-r são apoiados como opções adicionais.
-k Matar o processo após a clonagem (-r), ou no final da recolha de despejos
-l Exiba o registo do processo.
-m Limiar de compromisso de memória em MB para criar uma lixeira.
-ma Escreva um ficheiro de despejo com toda a memória do processo. O formato de despejo predefinido inclui apenas informações de linha e manuseação.
-mc Escreva um ficheiro de despejo personalizado. Inclua a memória definida pela máscara de MINIDUMP_TYPE especificada (Hex).
-md Escreve um ficheiro de despejo da Callback. Incluir a memória definida pela rotina de chamada MiniDumpWriteDump chamada MiniDumpCallbackRoutine do DLL especificado.
-mk Também escreva um ficheiro de despejo de Kernel. Inclui as pilhas de núcleo dos fios no processo. O SO não suporta uma lixeira de kernel (-mk) quando se utiliza um clone (-r). Ao utilizar vários tamanhos de despejo, é tomada uma lixeira de núcleo para cada tamanho de despejo.
-ml Gatilho quando o compromisso de memória desce abaixo do valor de MB especificado.
-mm Escreva um mini ficheiro de despejo (predefinição).
-mp Escreva um ficheiro de despejo com informações de linha e manuseamento, e toda a memória do processo de leitura/escrita. Para minimizar o tamanho do despejo, são procuradas áreas de memória superiores a 512MB e, se encontradas, a maior área é excluída. Uma área de memória é a coleção das mesmas áreas de atribuição de memória. A remoção desta memória (cache) reduz Exchange e SQL Server depósitos em mais de 90%.
-n Número de despejos para escrever antes de sair.
-o Substitua um ficheiro de despejo existente.
-p Detona no contador de desempenho especificado quando o limiar for ultrapassado. Nota: para especificar um contador de processos quando há múltiplas instâncias do processo em execução, utilize o ID do processo com a seguinte sintaxe: "\Processo( < nome > _ < pid > )\contador"
-pl Detona quando o contador de desempenho cair abaixo do valor especificado.
-r Despejar usando um clone. O limite simultâneo é opcional (predefinição 1, máx.
ATENÇÃO: um elevado valor de concordância pode afetar o desempenho do sistema.
- Windows 7 : Utiliza reflexão. O SO não suporta.e.
- Windows 8.0 : Utiliza reflexão. O SO não suporta.e.
- Windows 8.1+: Usa PSS. Todos os tipos de gatilho são suportados.
-s Segundos consecutivos antes de ser escrita a lixeira (o padrão é 10).
-t Escreva uma lixeira quando o processo terminar.
-u Trate a utilização do CPU em relação a um único núcleo (utilizado com -c).
Como única opção, desinstrói o ProcDump como o depuração pós-morte.
-w Aguarde o lançamento do processo especificado se não estiver em funcionamento.
-wer Faça fila para Relatório de Erros do Windows.
-x Lance a imagem especificada com argumentos opcionais. Se for uma aplicação ou pacote de loja, o ProcDump começará na próxima ativação (apenas).
-64 Por predefinição, o ProcDump irá capturar um despejo de 32 bits de um processo de 32 bits quando estiver a funcionar em Windows de 64 bits. Esta opção substitui-se para criar uma lixeira de 64 bits. Utilização única para depuração do subsistema WOW64.
-? Usar-? - e ver linhas de comando de exemplo.

Se omitir o nome do ficheiro de despejo, ele não <processname>_<datetime>.dmp pode.

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

Terminação Automatizada:

Definir um evento com nome ProcDump-<PID> é o mesmo que escrever Ctrl+C para terminar graciosamente ProcDump

Nome de arquivo:

Nome de ficheiro de despejo predefinido: PROCESSNAME_YYMMDD_HHMMSS.dmp

São suportadas as seguintes substituições:

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

Exemplos

Escreva um mini despejo de um processo chamado 'bloco de notas' (só pode existir uma correspondência):

C:\ bloco de notas procdump

Escreva uma lixeira completa de um processo com PID '4572':

C:\ procdump -ma 4572

Escreva 3 mini despejos com 5 segundos de distância de um processo chamado 'bloco de notas':

C:\ procdump -s 5 -n 3 notepad

Escreva até 3 mini depósitos de um processo denominado "consumir" quando exceder 20% de utilização do CPU durante cinco segundos:

C:\ procdump -c 20 -s 5 -n 3 consumir

Escreva uma mini lixeira para um processo chamado "hang.exe" quando um dos seus Windows não responde por mais de 5 segundos:

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

Escreva um mini despejo de um processo denominado 'outlook' quando o uso total do CPU do sistema excede 20% durante 10 segundos:

C:\ procdump outlook -p "\Processador (_Total)\% Tempo do processador" 20

Escreva uma lixeira completa de um processo chamado "outlook" quando a contagem de manípulos do Outlook exceder 10.000:

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

Escreva um miniPlus da Microsoft Exchange Information Store quando tiver uma exceção não manipulada:

C:\ procdump -mp -e store.exe

Exibir sem escrever uma lixeira, os códigos/nomes de exceção de w3wp.exe:

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

Escreva uma mini-lixeira de w3wp.exe se o código/nome de uma exceção contiver 'NotFound':

C:\ procdump -e 1 -f Não Encontrar w3wp.exe

Lançar um processo e, em seguida, monitorizá-lo para exceções:

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

Registe-se para lançamento e tente ativar uma 'aplicação' moderna. Uma nova instância ProcDump começará quando ativada para monitorizar para exceções:

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

Registe-se para o lançamento de um 'pacote' moderno. Uma nova instância ProcDump começará quando for (manualmente) ativada para monitorizar para exceções:

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

Registe-se como depuradora Just-in-Time (AeDebug). Faz despejos completos em c:\despejos:

C:\ procdump -ma -i c:\despejos

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

C:\ > procdump -? -e

  • Windows Internals Book As atualizações oficiais e a página errata para o livro definitivo sobre Windows internos, de Mark Russinovich e David Solomon.
  • referência do administrador da Sysinternals Windows O guia oficial dos utilitários Sysinternals de Mark Russinovich e Aaron Margosis, incluindo descrições de todas as ferramentas, suas características, como usá-las para resolução de problemas, e exemplo casos reais da sua utilização.

DownloadBaixar ProcDump(680 KB)

Baixar ProcDump para Linux (GitHub)

Continua:

  • Cliente: Windows 8.1 e superior.
  • Servidor: Windows Server 2012 e mais alto.

Saiba Mais