ProcDump v11.0

Por Mark Russinovich y Andrew Richards

Publicación: 11/03/2022

Descargar Descargar ProcDump (714 KB)

Descarga de ProcDump para Linux (GitHub)

Creado con ZoomIt

Introducción

ProcDump es una utilidad de línea de comandos cuyo propósito principal es supervisar una aplicación para picos de CPU 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 la supervisión de ventanas bloqueadas (con la misma definición de un bloqueo de ventana que usa Windows y el Administrador de tareas), la supervisión de excepciones no controladas y puede generar volcados en función de 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] [-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 de instalación:

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

Uso de desinstalación:

procdump.exe -u

Tipos de volcado:

Tipo de volcado Descripción
-mm Escribir un archivo de volcado "Mini". (predeterminado).
- Incluye memoria a la que se hace referencia directa e indirectamente (pilas y a lo que hacen referencia).
- Incluye todos los metadatos (proceso, subproceso, módulo, identificador, espacio de direcciones, etc.).
-ma Escribir un archivo de volcado "Completo".
- Incluye toda la memoria (imagen, asignada y privada).
- Incluye todos los metadatos (proceso, subproceso, módulo, identificador, espacio de direcciones, etc.).
-mt Escribir un archivo de volcado de "evaluación de prioridades".
- Incluye memoria a la que se hace referencia directamente (pilas).
- Incluye metadatos limitados (Proceso, Subproceso, Módulo y Controlador).
- Se intenta eliminar la información confidencial, pero no se garantiza.
-mp Escribir un archivo de volcado "MiniPlus".
- Incluye toda la memoria privada y toda la imagen de lectura y escritura o la memoria asignada.
- Incluye todos los metadatos (proceso, subproceso, módulo, identificador, espacio de direcciones, etc.).
- Para minimizar el tamaño, se excluye el área de memoria privada más grande de 512 MB.
  Un área de memoria se define como la suma de las asignaciones de memoria de mismo tamaño.
  El volcado de memoria es tan detallado como un volcado completo, pero el tamaño es del 10% - 75 %.
- Nota: Los procesos CLR se vuelcan como Completos (-ma) debido a las limitaciones de depuración.
-mc Escribir un archivo de volcado "Personalizado".
- Incluye la memoria y los metadatos definidos por la máscara especificada MINIDUMP_TYPE (hexadecimal).
md Escribir un archivo de volcado de "devolución de llamada".
- Incluye la memoria definida por la rutina de devolución de llamada de MiniDumpWriteDump denominada MiniDumpCallbackRoutine del archivo DLL especificado.
- Incluye todos los metadatos (proceso, subproceso, módulo, identificador, espacio de direcciones, etc.).
-mk Escribir también un archivo de volcado de memoria "Kernel".
- Incluye las pilas de kernel de los subprocesos en el proceso.
- El sistema operativo no admite un volcado de kernel (-mk) al usar un clon (-r).
- Cuando se usan varios tamaños de volcado, se toma un volcado de kernel para cada tamaño de volcado.

Condiciones:

Condición Descripción
-a Evitar la interrupción. Se 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 Evitar la interrupción en el tiempo de espera. Cancelar la colección del desencadenador a los N segundos.
-b Tratar los puntos de interrupción de depuración como excepciones (de lo contrario, omitirlos).
-c Umbral de CPU por encima del cual se crea un volcado de memoria del proceso.
-cl Umbral de CPU por debajo del cual se crea un volcado de memoria del proceso.
-dc Agregar la cadena especificada al comentario de volcado generado.
-e Escribir un volcado cuando el proceso encuentre una excepción no controlada.
Incluya el 1 para crear un volcado en las excepciones de primera oportunidad.
Agregue -ld para crear un volcado cuando se cargue un DLL (módulo) (se aplica el filtrado).
Agregue -ud para crear un volcado cuando se descargue un DLL (módulo) (se aplica el filtrado).
Agregue -ct para crear un volcado de memoria cuando se cree un subproceso.
Agregue -et para crear un volcado de memoria cuando se cierre un subproceso.
-f Filtrar (incluir) el contenido de las excepciones, el registro de depuración y el nombre de archivo en la carga o descarga de DLL. Se admiten caracteres comodín (*).
-fx Filtrar (excluir) el contenido de las excepciones, el registro de depuración y el nombre de archivo en la carga/descarga de DLL. Se admiten caracteres comodín (*).
-g Ejecutar como depurador nativo en un proceso administrado (sin interoperabilidad).
-h Escribir volcado si el proceso tiene una ventana colgada (no responde a los mensajes de la ventana durante al menos 5 segundos).
-k Finalizar el proceso tras la clonación (-r), o al final de la recogida de volcados.
-l Mostrar 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 de memoria.
-ml Desencadenar cuando la memoria comprometida cae por debajo del valor de MB especificado.
-n Número de volcados de memoria que se van a escribir antes de salir.
-o Sobrescribir un archivo de volcado existente.
-p Desencadenar cuando el contador de rendimiento está en, o supera, el umbral especificado. Algunos contadores o nombres de instancia pueden distinguir mayúsculas de minúsculas.
-pl Desencadenar cuando el contador de rendimiento cae por debajo del umbral especificado.
-r Volcado de memoria mediante un clon. El límite simultáneo es opcional (el valor predeterminado es 1, máximo 5). El sistema operativo no admite un volcado de kernel (-mk) al usar un clon (-r). 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 desencadenadores.
-s Segundos consecutivos antes de escribir el volcado (el valor predeterminado es 10).
-t Escribir un volcado de memoria cuando finalice el proceso.
-u Tratar el uso de CPU con respecto a un único núcleo (se usa con -c).
-v SOLO DEPURACIÓN: salida detallada.
-w Esperar a que se inicie el proceso especificado si no se está ejecutando.
-wer Poner en cola el volcado (mayor) en Informe de errores de Windows.
-x Iniciar la imagen especificada con argumentos opcionales. Si se trata de una aplicación o paquete de la tienda, ProcDump se iniciará en la siguiente activación (solo).
-y OCULTO: activación de la aplicación de la tienda.
-64 De forma predeterminada, ProcDump capturará un volcado de 32 bits de un proceso de 32 bits cuando se ejecute en Windows de 64 bits. Esta opción invalida para crear un volcado de 64 bits. Usar solo para la depuración del subsistema WOW64.

Contrato de licencia:

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

Terminación automatizada:

-cancel <Target Process PID>

El uso de esta opción o el establecimiento de un evento con el nombre ProcDump-<PID> es lo mismo que teclear Ctrl+C para terminar ProcDump correctamente. La finalización correcta garantiza que el proceso se reanude si una captura está activa. La cancelación se aplica a todas las instancias de ProcDump que supervisan el proceso.

Filename:

Nombre de archivo de volcado predeterminado: PROCESSNAME_YYMMDD_HHMMSS.dmp

Se admiten las siguientes sustituciones:

Sustitución Explicación
PROCESSNAME Nombre del proceso
PID Identificador del proceso
EXCEPTIONCODE Código de excepción
YYMMDD Año/Mes/Día
HHMMSS Hora/Minuto/Segundo

Ejemplos

  • Escribir un minivolcado de memoria de un proceso denominado "Bloc de notas" (solo puede existir una coincidencia):

    C:\>procdump notepad
    
  • Escribir un volcado completo de un proceso con PID "4572":

    C:\>procdump -ma 4572
    
  • Escribir primero un minivolcado y, a continuación, un volcado completo de un proceso con PID "4572":

    C:\>procdump -mm -ma 4572
    
  • Escribir 3 minivolcados de memoria 5 segundos aparte de un proceso denominado "Bloc de notas":

    C:\>procdump -n 3 -s 5 notepad
    
  • Escribir hasta 3 minivolcados de memoria de un proceso denominado "consumir" cuando supere el 20 % de uso de CPU durante cinco segundos:

    C:\>procdump -n 3 -s 5 -c 20 consume
    
  • Escribir un minivolcado para un proceso denominado "hang.exe" cuando una de sus ventanas no responde durante más de 5 segundos:

    C:\>procdump -h hang.exe
    
  • Escribir un volcado completo y de kernel para un proceso denominado "hang.exe" cuando una de sus ventanas no responde durante más de 5 segundos:

    C:\>procdump -ma -mk -h hang.exe
    
  • Escribir un minivolcado de memoria de un proceso denominado "outlook" cuando el uso total de CPU del sistema supere el 20 % durante 10 segundos:

    C:\>procdump outlook -s 10 -p "\Processor(_Total)\% Processor Time" 20
    
  • Escribir un volcado completo de un proceso denominado "outlook" cuando el número de identificadores de Outlook supere los 10 000:

    C:\>procdump -ma outlook -p "\Process(Outlook)\Handle Count" 10000
    
  • Escribir un volcado completo de PID 1234 de "svchost", instancia 87, cuando el recuento de identificadores supere los 10 000:

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

    Nota: Contadores de instancias múltiples
    Si hay varias instancias del contador, deberá incluir el nombre o el número de instancia.

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

    Los sistemas operativos más antiguos requieren que añada el PID para contadores de \Process.

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

    Consejo: Use el Monitor de rendimiento para ver los contadores (sobre todo si se distingue entre mayúsculas y minúsculas).
    Consejo: Para contadores basados en \Process(*), use PowerShell para asignar un PID a su #NNN.

    Get-Counter -Counter "\Process(*)\ID Process"
    
  • Escribir un volcado completo para una excepción de segunda oportunidad:

    C:\>procdump -ma -e w3wp.exe
    
  • Escribir un volcado completo para una excepción de primera o segunda oportunidad:

    C:\>procdump -ma -e 1 w3wp.exe
    
  • Escribir un volcado completo para un mensaje de cadena de depuración:

    C:\>procdump -ma -l w3wp.exe
    
  • Escribir hasta 10 volcados completos de cada primera o segunda excepción de probabilidad de w3wp.exe:

    C:\>procdump -ma -n 10 -e 1 w3wp.exe
    
  • Escribir hasta 10 volcados completos si el código/nombre/mensaje de una excepción contiene ''NotFound":

    C:\>procdump -ma -n 10 -e 1 -f NotFound w3wp.exe
    
  • Escribir hasta 10 volcados completos si un mensaje de cadena de depuración contiene "NotFound":

    C:\>procdump -ma -n 10 -l -f NotFound w3wp.exe
    
  • Esperar a un proceso denominado "Bloc de notas" (y supervisión de excepciones):

    C:\>procdump -e -w notepad
    
  • Iniciar un proceso denominado "Bloc de notas" (y supervisión de excepciones):

    C:\>procdump -e -x c:\dumps notepad
    
  • Registrarse para iniciar, e intentar activar, una "aplicación" de la tienda. Se iniciará una nueva instancia de ProcDump cuando se active:

    C:\>procdump -e -x c:\dumps Microsoft.BingMaps_8wekyb3d8bbwe!AppexMaps
    
  • Registrarse para iniciar un "paquete" de la tienda. Se iniciará una nueva instancia de ProcDump cuando se active (manualmente):

    C:\>procdump -e -x c:\dumps Microsoft.BingMaps_1.2.0.136_x64__8wekyb3d8bbwe
    
  • Escribir un volcado de memoria MiniPlus del Almacén de información de Microsoft Exchange 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
    
  • Windows 7/8.0; usar Reflexión para reducir la interrupción de 5 desencadenadores consecutivos:

    C:\>procdump -r -ma -n 5 -s 15 wmplayer.exe
    
  • Windows 8.1+; usar PSS para reducir la interrupción de 5 desencadenadores simultáneos:

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

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

    ..o..

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

    C:\>procdump -u
    

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

C:\>procdump -? -e
  • Libro de elementos internos de Windows Las actualizaciones oficiales y la página de erratas del libro definitivo sobre los elementos internos de Windows, de Mark Russinovich y David Solomon.
  • Referencia del administrador de Windows Sysinternals La guía oficial de las utilidades de Sysinternals de Mark Russinovich y Aaron Margosis, incluidas descripciones de todas las herramientas, sus características, cómo usarlas para solucionar problemas y ejemplos de casos reales de su uso.

Descargar Descargar ProcDump (714 KB)

Descarga de ProcDump para Linux (GitHub)

Se ejecuta en:

  • Cliente: Windows 8.1 y versiones posteriores.
  • Servidor: Windows Server 2012 y versiones posteriores.

Más información