ProcDump v10.11

Por Mark Russinvl y Andrew Richards

Publicado: 18/08/2021

DescargarDownload ProcDump(680 KB)

Descargar ProcDump para Linux (GitHub)

Introducción

ProcDump es una utilidad de línea de comandos cuyo propósito principal es supervisar los picos de CPU de una aplicación y generar volcados de memoria durante un pico que un administrador o desarrollador puede usar para determinar la causa del pico. ProcDump también incluye supervisión de ventanas no controladas (con la misma definición de un bloque de ventana que Windows y Administrador de tareas usan), supervisión de excepciones no controladas y puede generar volcados basados en los valores de los contadores de rendimiento del sistema. También puede servir como una utilidad de volcado de proceso general que puede insertar en otros scripts.

Uso de ProcDump

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

Uso de instalación:

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

Uso de desinstalación:

procdump.exe -u
Parámetro Description
-a Evite la interrupción. Requiere -r. Si el desencadenador hará que el destino se suspenda durante un tiempo prolongado debido a un límite de volcado simultáneo superado, se omitirá el desencadenador.
-at Evite la interrupción en tiempo de espera. Cancele la colección del desencadenador en N segundos.
-b Tratar los puntos de interrupción de depuración como excepciones (en caso contrario, omitirlos).
-c Umbral de CPU en el que se va a crear un volcado del proceso.
-cl Umbral de CPU por debajo del cual se va a crear un volcado del proceso.
-d Invoque la rutina de devolución de llamada de minivolumen denominada MiniDumpCallbackRoutine del archivo DLL especificado.
-e Escriba un volcado cuando el proceso encuentre una excepción no controlada. Incluya el 1 para crear el volcado en las excepciones de primera oportunidad.
-f Filtre las excepciones de primera oportunidad. Se admiten caracteres comodín (*). Para mostrar simplemente los nombres sin volcado, use un filtro en blanco ("").
-fx Filtre (excluya) por el contenido de las excepciones y el registro de depuración. Se admite caracteres comodín.
-g Ejecutar como depurador nativo en un proceso administrado (sin interoperabilidad).
-h Volcado de escritura si el proceso tiene una ventana desaprobada (no responde a los mensajes de ventana durante al menos 5 segundos).
-i Instale ProcDump como depurador postmortem de AeDebug. Solo se admiten -ma, -mp, -d y -r como opciones adicionales.
-k Eliminación del proceso después de la clonación (-r) o al final de la recopilación de volcados
-l Muestra el registro de depuración del proceso.
-m Umbral de confirmación de memoria en MB en el que se va a crear un volcado.
-ma Escriba un archivo de volcado con toda la memoria de proceso. El formato de volcado predeterminado solo incluye información de subprocesos y identificadores.
-mc Escribir un archivo de volcado personalizado. Incluya la memoria definida por la máscara de MINIDUMP_TYPE especificada (hexadecimal).
-md Escriba un archivo de volcado de devolución de llamada. Incluya la memoria definida por la rutina de devolución de llamada MiniDumpWriteDump denominada MiniDumpCallbackRoutine del archivo DLL especificado.
-mk Escriba también un archivo de volcado de kernel. Incluye las pilas de kernel de los subprocesos del proceso. El sistema operativo no admite un volcado de kernel (-mk) cuando se usa un clon (-r). Cuando se usan varios tamaños de volcado, se toma un volcado de kernel para cada tamaño de volcado.
-ml Se desencadena cuando la confirmación de memoria cae por debajo del valor de MB especificado.
-mm Escribir un archivo de minivolcar (valor predeterminado).
-mp Escribir un archivo de volcado de memoria con información de subprocesos y identificadores, y toda la memoria del proceso de lectura y escritura. Para minimizar el tamaño del volcado, se buscan áreas de memoria mayores de 512 MB y, si se encuentran, se excluye el área más grande. Un área de memoria es la colección de áreas de asignación de memoria del mismo tamaño. La eliminación de esta memoria (caché) reduce Exchange y SQL Server volcados de memoria en más del 90 %.
-n Número de volcados de memoria que se escribirán antes de salir.
-o Sobrescriba un archivo de volcado existente.
-p Desencadene en el contador de rendimiento especificado cuando se supere el umbral. Nota: Para especificar un contador de procesos cuando hay varias instancias del proceso en ejecución, use el identificador de proceso con la sintaxis siguiente: "\Process( < name > _ pid <> )\counter"
-pl Se desencadena cuando el contador de rendimiento está por debajo del valor especificado.
-r Volcado mediante un clon. El límite simultáneo es opcional (valor predeterminado 1, máximo 5).
PRECAUCIÓN: un valor de simultaneidad alto puede afectar al rendimiento del sistema.
- Windows 7: usa reflexión. El sistema operativo no admite -e.
- Windows 8.0: usa reflexión. El sistema operativo no admite -e.
- Windows 8.1+: usa PSS. Se admiten todos los tipos de desencadenador.
-s Segundos consecutivos antes de escribir el volcado (el valor predeterminado es 10).
-t Escriba un volcado cuando finalice el proceso.
-u Tratar el uso de CPU en relación con un único núcleo (se usa con -c).
Como única opción, desinstala ProcDump como depurador postmortem.
-w Espere a que se inicie el proceso especificado si no se está ejecutando.
-wer Poner en cola el volcado (más grande) en Informe de errores de Windows.
-x Inicie la imagen especificada con argumentos opcionales. Si se trata de una aplicación o un paquete de store, ProcDump se iniciará en la siguiente activación (solo).
-64 De forma predeterminada, ProcDump capturará un volcado de 32 bits de un proceso de 32 bits cuando se ejecuta en archivos de 64 Windows. Esta opción invalida para crear un volcado de 64 bits. Use solo para la depuración del subsistema WOW64.
-? Use -? -e para ver líneas de comandos de ejemplo.

Si omite el nombre del archivo de volcado, el valor predeterminado es <processname>_<datetime>.dmp .

Use la -accepteula opción de línea de comandos para aceptar automáticamente el contrato de licencia de Sysinternals.

Terminación automatizada:

Establecer un evento con nombre ProcDump-<PID> es lo mismo que escribir Ctrl+C para finalizar correctamente ProcDump

Nombre:

Nombre de archivo de volcado predeterminado: PROCESSNAME_YYMMDD_HHMMSS.dmp

Se admiten las siguientes sustituciones:

Sustitución Explicación
PROCESSNAME Nombre del proceso
Identificador del proceso PID
EXCEPTIONCODE Código de excepción
AAMMDD Año/mes/día
HHMMSS Hora/minuto/segundo

Ejemplos

Escriba un minivolcante de un proceso denominado "Bloc de notas" (solo puede existir una coincidencia):

Bloc de notas C:\ procdump

Escriba un volcado completo de un proceso con PID "4572":

C:\ procdump -ma 4572

Escriba 3 mini volcados de memoria con 5 segundos de diferencia de un proceso denominado "Bloc de notas":

C:\ procdump -s 5 -n 3 bloc de notas

Escriba hasta tres mini volcados de memoria de un proceso denominado "consume" cuando supere el 20 % de uso de CPU durante cinco segundos:

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

Escriba un minivolcar para un proceso denominado "hang.exe" cuando uno de Windows no responde durante más de 5 segundos:

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

Escriba un minivolcamiento de un proceso denominado "outlook" cuando el uso total de CPU del sistema supere el 20 % durante 10 segundos:

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

Escriba un volcado completo de un proceso denominado "outlook" cuando el número de identificadores de Outlook superior a 10 000:

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

Escriba un volcado de Memoria miniplus de Microsoft Exchange Information Store cuando tenga una excepción no controlada:

C:\ procdump -mp -e store.exe

Mostrar sin escribir un volcado de memoria, los códigos de excepción o los nombres de w3wp.exe:

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

Escriba un minivolcar w3wp.exe si el código o el nombre de una excepción contiene "NotFound":

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

Inicie un proceso y, a continuación, supervise si hay excepciones:

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

Regístrese para iniciar e intentar activar una "aplicación" moderna. Se iniciará una nueva instancia de ProcDump cuando se active para supervisar las excepciones:

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

Regístrese para el inicio de un "paquete" moderno. Una nueva instancia de ProcDump se iniciará cuando esté activada (manualmente) para supervisar las excepciones:

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

Regístrese como depurador Just-In-Time (AeDebug). Realiza volcados completos en c:\dumps:

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

Consulte una lista de líneas de comandos de ejemplo (los ejemplos se enumeran anteriormente):

C:\ > procdump -? -E

  • Windows Internals Book The official updates and errata page for the definitive book on Windows internals, de Mark Russinvl and DavidVl.
  • Windows referencia del administrador de Sysinternals La guía oficial de las utilidades Sysinternals de Mark Russinvl y Aaron Margosis, que incluye descripciones de todas las herramientas, sus características, cómo usarlas para solucionar problemas y ejemplos de casos reales de su uso.

DescargarDownload ProcDump(680 KB)

Descargar ProcDump para Linux (GitHub)

Se ejecuta en:

  • Cliente: Windows 8.1 y superiores.
  • Servidor: Windows Server 2012 y superiores.

Más información