estrutura MINIDUMP_EXCEPTION (minidumpapiset.h)

Contém informações de exceção.

Sintaxe

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;

Membros

ExceptionCode

O motivo pelo qual a exceção ocorreu. Esse é o código gerado por uma exceção de hardware ou o código especificado na função RaiseException para uma exceção gerada pelo software. A seguir estão os códigos de exceção que provavelmente ocorrerão devido a erros comuns de programação.

Valor Significado
EXCEPTION_ACCESS_VIOLATION
O thread tentou ler ou gravar em um endereço virtual para o qual não tem o acesso apropriado.
EXCEPTION_ARRAY_BOUNDS_EXCEEDED
O thread tentou acessar um elemento de matriz que está fora dos limites e o hardware subjacente dá suporte à verificação de limites.
EXCEPTION_BREAKPOINT
Um ponto de interrupção foi encontrado.
EXCEPTION_DATATYPE_MISALIGNMENT
O thread tentou ler ou gravar dados desalinhados no hardware que não fornecem alinhamento. Por exemplo, os valores de 16 bits devem ser alinhados em limites de 2 bytes; Valores de 32 bits em limites de 4 bytes e assim por diante.
EXCEPTION_FLT_DENORMAL_OPERAND
Um dos operandos em uma operação de ponto flutuante é desnormal. Um valor desnormal é um que é muito pequeno para representar como um valor de ponto flutuante padrão.
EXCEPTION_FLT_DIVIDE_BY_ZERO
O thread tentou dividir um valor de ponto flutuante por um divisor de ponto flutuante de zero.
EXCEPTION_FLT_INEXACT_RESULT
O resultado de uma operação de ponto flutuante não pode ser representado exatamente como uma fração decimal.
EXCEPTION_FLT_INVALID_OPERATION
Essa exceção representa qualquer exceção de ponto flutuante não incluída nesta lista.
EXCEPTION_FLT_OVERFLOW
O expoente de uma operação de ponto flutuante é maior que a magnitude permitida pelo tipo correspondente.
EXCEPTION_FLT_STACK_CHECK
A pilha estoura ou é subfluxo como resultado de uma operação de ponto flutuante.
EXCEPTION_FLT_UNDERFLOW
O expoente de uma operação de ponto flutuante é menor que a magnitude permitida pelo tipo correspondente.
EXCEPTION_ILLEGAL_INSTRUCTION
O thread tentou executar uma instrução inválida.
EXCEPTION_IN_PAGE_ERROR
O thread tentou acessar uma página que não estava presente e o sistema não pôde carregar a página. Por exemplo, essa exceção poderá ocorrer se uma conexão de rede for perdida durante a execução de um programa pela rede.
EXCEPTION_INT_DIVIDE_BY_ZERO
O thread tentou dividir um valor inteiro por um divisor inteiro de zero.
EXCEPTION_INT_OVERFLOW
O resultado de uma operação de inteiro causou uma execução do bit mais significativo do resultado.
EXCEPTION_INVALID_DISPOSITION
Um manipulador de exceção retornou uma disposição inválida para o dispatcher de exceção. Os programadores que usam uma linguagem de alto nível, como C, nunca devem encontrar essa exceção.
EXCEPTION_NONCONTINUABLE_EXCEPTION
O thread tentou continuar a execução depois que ocorreu uma exceção nãocontinuável.
EXCEPTION_PRIV_INSTRUCTION
O thread tentou executar uma instrução cuja operação não é permitida no modo de computador atual.
EXCEPTION_SINGLE_STEP
Uma interceptação de rastreamento ou outro mecanismo de instrução única sinalizou que uma instrução foi executada.
EXCEPTION_STACK_OVERFLOW
O thread usou sua pilha.
 

É provável que outro código de exceção ocorra ao depurar processos de console. Ele não surge devido a um erro de programação. O código de exceção DBG_CONTROL_C ocorre quando CTRL+C é inserido em um processo de console que manipula sinais CTRL+C e está sendo depurado. Esse código de exceção não deve ser tratado por aplicativos. Ele é gerado apenas para o benefício do depurador e é gerado somente quando um depurador é anexado ao processo de console.

ExceptionFlags

Esse membro pode ser zero, indicando uma exceção contínua ou EXCEPTION_NONCONTINUABLE, indicando uma exceção nãocontinuável. Qualquer tentativa de continuar a execução após uma exceção nãocontinuável causará a exceção EXCEPTION_NONCONTINUABLE_EXCEPTION.

ExceptionRecord

Um ponteiro para uma estrutura MINIDUMP_EXCEPTION associada. Os registros de exceção podem ser encadeados para fornecer informações adicionais quando ocorrerem exceções aninhadas.

ExceptionAddress

O endereço em que a exceção ocorreu.

NumberParameters

O número de parâmetros associados à exceção. Esse é o número de elementos definidos na matriz ExceptionInformation .

__unusedAlignment

Reservado para alinhamento de membro de estrutura multiplataforma. Não defina.

ExceptionInformation[EXCEPTION_MAXIMUM_PARAMETERS]

Uma matriz de argumentos adicionais que descrevem a exceção. A função RaiseException pode especificar essa matriz de argumentos. Para a maioria dos códigos de exceção, os elementos da matriz são indefinidos. Para o código de exceção a seguir, os elementos da matriz são definidos da seguinte maneira.

Código da exceção Significado
EXCEPTION_ACCESS_VIOLATION
O primeiro elemento da matriz contém um sinalizador de leitura/gravação que indica o tipo de operação que causou a violação de acesso. Se esse valor for zero, o thread tentou ler os dados inacessíveis. Se esse valor for 1, o thread tentou gravar em um endereço inacessível.

O segundo elemento de matriz especifica o endereço virtual dos dados inacessíveis.

Requisitos

Requisito Valor
Cabeçalho minidumpapiset.h (inclua DbgHelp.h)
Redistribuível DbgHelp.dll 5.1 ou posterior

Confira também

MINIDUMP_EXCEPTION_STREAM

RaiseException