Share via


Recopilación de volcados de memoria tras un bloqueo

La configuración de una aplicación para que recopile un volcado de memoria cuando se produce un bloqueo se lleva a cabo estableciendo variables de entorno específicas. Esto resulta útil si quiere comprender por qué se ha producido un bloqueo. Por ejemplo, la captura de un volcado de memoria cuando se inicia una excepción le ayuda a identificar un problema mediante el examen del estado de la aplicación en el momento del bloqueo.

En la tabla siguiente se muestran las variables de entorno que se pueden configurar para la recopilación de volcados de memoria en caso de bloqueo.

Variable de entorno Descripción Valor predeterminado
COMPlus_DbgEnableMiniDump o DOTNET_DbgEnableMiniDump Si se establece en 1, se habilita la generación de volcado de memoria principal. 0
COMPlus_DbgMiniDumpType o DOTNET_DbgMiniDumpType Tipo de volcado de memoria que se va a recopilar. Para obtener más información, consulte Tipos de minivolcados. 2 (Heap)
COMPlus_DbgMiniDumpName o DOTNET_DbgMiniDumpName Ruta de acceso a un archivo en el que se escribirá el volcado de memoria. Asegúrese de que el usuario con el que se ejecuta el proceso dotnet tiene permisos de escritura en el directorio especificado. /tmp/coredump.<pid>
COMPlus_CreateDumpDiagnostics o DOTNET_CreateDumpDiagnostics Si se establece en 1, se habilita el registro de diagnóstico del proceso de volcado de memoria. 0
COMPlus_EnableCrashReport o DOTNET_EnableCrashReport Requiere .NET 6 o posterior; no se admite en Windows.
Si se establece en 1, el entorno de ejecución genera un informe de bloqueo con formato JSON que incluye información sobre los subprocesos y los marcos de pila de la aplicación que se bloquea. El nombre del informe de bloqueo es la ruta de acceso del volcado de memoria o el nombre con .crashreport.json anexado.
COMPlus_CreateDumpVerboseDiagnostics o DOTNET_CreateDumpVerboseDiagnostics Requiere .NET 7 o posterior.
Si se establece en 1, habilita el registro de diagnóstico detallado del proceso de volcado de memoria.
0
COMPlus_CreateDumpLogToFile o DOTNET_CreateDumpLogToFile Requiere .NET 7 o posterior.
Ruta de acceso del archivo en el que se deben escribir los mensajes de diagnóstico.
Si no se establece, los mensajes de diagnóstico se escriben en la consola de la aplicación de bloqueo.

Nota

.NET 7 estandariza en el prefijo DOTNET_ en lugar de COMPlus_ para estas variables de entorno. Sin embargo, el prefijo COMPlus_ seguirá funcionando. Si usa una versión anterior del runtime de .NET, debe seguir usando el prefijo COMPlus_ para las variables de entorno.

Plantillas de ruta de acceso de archivo

A partir de .NET 5, DOTNET_DbgMiniDumpName también puede incluir especificadores de plantilla de formato que se rellenan dinámicamente:

Especificador Value
%% Un solo carácter %
%p PID del proceso de volcado de memoria
%e Nombre de archivo ejecutable del proceso
%h Nombre de host que devuelve gethostname()
%t Tiempo de volcado de memoria, expresado como segundos desde la época: 1970-01-01 00:00:00 +0000 (UTC)

Tipos de minivolcados

En la tabla siguiente se muestran todos los valores que se pueden usar para DOTNET_DbgMiniDumpType. Por ejemplo, si DOTNET_DbgMiniDumpType se establece en 1, significa que el volcado de tipo Mini se recopilará al producirse un bloqueo.

Value Nombre Descripción
1 Mini Un volcado de memoria pequeño que contiene listas de módulos, listas de subprocesos, información de excepción y todas las pilas.
2 Heap Un volcado de memoria grande y relativamente completo que contiene listas de módulos, listas de subprocesos, todas las pilas, información de excepción, información de control y toda la memoria excepto las imágenes asignadas.
3 Triage Igual que Mini, pero quita información personal del usuario, como rutas de acceso y contraseñas.
4 Full El volcado de memoria más grande que contiene toda la memoria, incluidas las imágenes de los módulos.