Compartir a través de


estructura MINIDUMP_EXCEPTION (minidumpapiset.h)

Contiene información de excepción.

Sintaxis

typedef struct _MINIDUMP_EXCEPTION {
  ULONG32 ExceptionCode;
  ULONG32 ExceptionFlags;
  ULONG64 ExceptionRecord;
  ULONG64 ExceptionAddress;
  ULONG32 NumberParameters;
  ULONG32 __unusedAlignment;
  ULONG64 ExceptionInformation[EXCEPTION_MAXIMUM_PARAMETERS];
} MINIDUMP_EXCEPTION, *PMINIDUMP_EXCEPTION;

Miembros

ExceptionCode

Motivo por el que se produjo la excepción. Este es el código generado por una excepción de hardware o el código especificado en la función RaiseException para una excepción generada por software. A continuación se muestran los códigos de excepción que es probable que se produzcan debido a errores comunes de programación.

Valor Significado
EXCEPTION_ACCESS_VIOLATION
El subproceso intentó leer o escribir en una dirección virtual para la que no tiene el acceso adecuado.
EXCEPTION_ARRAY_BOUNDS_EXCEEDED
El subproceso intentó acceder a un elemento de matriz que está fuera de los límites y el hardware subyacente admite la comprobación de límites.
EXCEPTION_BREAKPOINT
Se encontró un punto de interrupción.
EXCEPTION_DATATYPE_MISALIGNMENT
El subproceso intentó leer o escribir datos que no están alineados en el hardware que no proporciona alineación. Por ejemplo, los valores de 16 bits deben alinearse en límites de 2 bytes; Valores de 32 bits en límites de 4 bytes, etc.
EXCEPTION_FLT_DENORMAL_OPERAND
Uno de los operandos de una operación de punto flotante es desnormal. Un valor desnormal es aquel que es demasiado pequeño para representarse como un valor de punto flotante estándar.
EXCEPTION_FLT_DIVIDE_BY_ZERO
El subproceso intentó dividir un valor de punto flotante por un divisor de punto flotante de cero.
EXCEPTION_FLT_INEXACT_RESULT
El resultado de una operación de punto flotante no se puede representar exactamente como una fracción decimal.
EXCEPTION_FLT_INVALID_OPERATION
Esta excepción representa cualquier excepción de punto flotante que no esté incluida en esta lista.
EXCEPTION_FLT_OVERFLOW
El exponente de una operación de punto flotante es mayor que la magnitud permitida por el tipo correspondiente.
EXCEPTION_FLT_STACK_CHECK
Pila desbordada o subfluida como resultado de una operación de punto flotante.
EXCEPTION_FLT_UNDERFLOW
El exponente de una operación de punto flotante es menor que la magnitud permitida por el tipo correspondiente.
EXCEPTION_ILLEGAL_INSTRUCTION
El subproceso intentó ejecutar una instrucción no válida.
EXCEPTION_IN_PAGE_ERROR
El subproceso intentó acceder a una página que no estaba presente y el sistema no pudo cargar la página. Por ejemplo, esta excepción puede producirse si se pierde una conexión de red mientras se ejecuta un programa a través de la red.
EXCEPTION_INT_DIVIDE_BY_ZERO
El subproceso intentó dividir un valor entero por un divisor entero de cero.
EXCEPTION_INT_OVERFLOW
El resultado de una operación de entero provocó una realización del bit más significativo del resultado.
EXCEPTION_INVALID_DISPOSITION
Un controlador de excepciones devolvió una disposición no válida al distribuidor de excepciones. Los programadores que usen un lenguaje de alto nivel, como C, no deberían encontrarse nunca esta excepción.
EXCEPTION_NONCONTINUABLE_EXCEPTION
El subproceso intentó continuar la ejecución después de que se produjera una excepción no continuable.
EXCEPTION_PRIV_INSTRUCTION
El subproceso intentó ejecutar una instrucción cuya operación no está permitida en el modo de máquina actual.
EXCEPTION_SINGLE_STEP
Una trampa de seguimiento u otro mecanismo de instrucción única señalizó que se ha ejecutado una instrucción.
EXCEPTION_STACK_OVERFLOW
El subproceso usó su pila.
 

Es probable que se produzca otro código de excepción al depurar procesos de consola. No surge debido a un error de programación. El código de excepción de DBG_CONTROL_C se produce cuando CTRL+C se escribe en un proceso de consola que controla las señales CTRL+C y se está depurando. Este código de excepción no está diseñado para ser controlado por las aplicaciones. Solo se genera para la ventaja del depurador y solo se genera cuando un depurador está asociado al proceso de consola.

ExceptionFlags

Este miembro puede ser cero, lo que indica una excepción continuable o EXCEPTION_NONCONTINUABLE, lo que indica una excepción no continuable. Cualquier intento de continuar la ejecución después de una excepción no continua provoca la excepción EXCEPTION_NONCONTINUABLE_EXCEPTION.

ExceptionRecord

Puntero a una estructura de MINIDUMP_EXCEPTION asociada. Los registros de excepciones se pueden encadenar juntos para proporcionar información adicional cuando se producen excepciones anidadas.

ExceptionAddress

Dirección donde se produjo la excepción.

NumberParameters

Número de parámetros asociados a la excepción. Este es el número de elementos definidos en la matriz ExceptionInformation .

__unusedAlignment

Reservado para la alineación de miembros de estructura multiplataforma. No lo establezca.

ExceptionInformation[EXCEPTION_MAXIMUM_PARAMETERS]

Matriz de argumentos adicionales que describen la excepción. La función RaiseException puede especificar esta matriz de argumentos. Para la mayoría de los códigos de excepción, los elementos de matriz no están definidos. Para el código de excepción siguiente, los elementos de matriz se definen de la siguiente manera.

Código de excepción Significado
EXCEPTION_ACCESS_VIOLATION
El primer elemento de la matriz contiene una marca de lectura y escritura que indica el tipo de operación que provocó la infracción de acceso. Si este valor es cero, el subproceso intentó leer los datos inaccesibles. Si este valor es 1, el subproceso intentó escribir en una dirección inaccesible.

El segundo elemento de matriz especifica la dirección virtual de los datos inaccesibles.

Requisitos

Requisito Valor
Header minidumpapiset.h (incluir DbgHelp.h)
Redistribuible DbgHelp.dll 5.1 o posterior

Consulte también

MINIDUMP_EXCEPTION_STREAM

RaiseException