struttura MINIDUMP_EXCEPTION (minidumpapiset.h)

Contiene informazioni sull'eccezione.

Sintassi

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;

Members

ExceptionCode

Motivo per cui si è verificata l'eccezione. Questo è il codice generato da un'eccezione hardware o il codice specificato nella funzione RaiseException per un'eccezione generata dal software. Di seguito sono riportati i codici di eccezione che potrebbero verificarsi a causa di errori di programmazione comuni.

Valore Significato
EXCEPTION_ACCESS_VIOLATION
Il thread ha tentato di leggere o scrivere in un indirizzo virtuale per il quale non dispone dell'accesso appropriato.
EXCEPTION_ARRAY_BOUNDS_EXCEEDED
Il thread ha tentato di accedere a un elemento di matrice fuori dai limiti e l'hardware sottostante supporta il controllo dei limiti.
EXCEPTION_BREAKPOINT
È stato rilevato un punto di interruzione.
EXCEPTION_DATATYPE_MISALIGNMENT
Il thread ha tentato di leggere o scrivere dati non allineati all'hardware che non fornisce l'allineamento. Ad esempio, i valori a 16 bit devono essere allineati ai limiti a 2 byte; Valori a 32 bit su limiti a 4 byte e così via.
EXCEPTION_FLT_DENORMAL_OPERAND
Uno degli operandi in un'operazione a virgola mobile è denormale. Un valore denormale è un valore troppo piccolo per rappresentare come valore a virgola mobile standard.
EXCEPTION_FLT_DIVIDE_BY_ZERO
Il thread ha tentato di dividere un valore a virgola mobile per un divisore a virgola mobile pari a zero.
EXCEPTION_FLT_INEXACT_RESULT
Il risultato di un'operazione a virgola mobile non può essere rappresentato esattamente come frazione decimale.
EXCEPTION_FLT_INVALID_OPERATION
Questa eccezione rappresenta qualsiasi eccezione a virgola mobile non inclusa in questo elenco.
EXCEPTION_FLT_OVERFLOW
L'esponente di un'operazione a virgola mobile è maggiore della grandezza consentita dal tipo corrispondente.
EXCEPTION_FLT_STACK_CHECK
L'overflow dello stack o sottoposto a underflow come risultato di un'operazione a virgola mobile.
EXCEPTION_FLT_UNDERFLOW
L'esponente di un'operazione a virgola mobile è minore della grandezza consentita dal tipo corrispondente.
EXCEPTION_ILLEGAL_INSTRUCTION
Il thread ha tentato di eseguire un'istruzione non valida.
EXCEPTION_IN_PAGE_ERROR
Il thread ha tentato di accedere a una pagina non presente e il sistema non è riuscito a caricare la pagina. Ad esempio, questa eccezione può verificarsi se una connessione di rete viene persa durante l'esecuzione di un programma in rete.
EXCEPTION_INT_DIVIDE_BY_ZERO
Il thread ha tentato di dividere un valore intero per un divisore intero pari a zero.
EXCEPTION_INT_OVERFLOW
Il risultato di un'operazione integer ha causato un'esecuzione del bit più significativo del risultato.
EXCEPTION_INVALID_DISPOSITION
Un gestore eccezioni ha restituito un'eliminazione non valida per il dispatcher eccezioni. I programmatori che usano un linguaggio di alto livello, ad esempio C, non devono mai riscontrare questa eccezione.
EXCEPTION_NONCONTINUABLE_EXCEPTION
Il thread ha tentato di continuare l'esecuzione dopo che si è verificata un'eccezione non contigua.
EXCEPTION_PRIV_INSTRUCTION
Il thread ha tentato di eseguire un'istruzione la cui operazione non è consentita nella modalità computer corrente.
EXCEPTION_SINGLE_STEP
Un trap di traccia o un altro meccanismo a istruzione singola ha segnalato che è stata eseguita un'istruzione.
EXCEPTION_STACK_OVERFLOW
Il thread ha usato lo stack.
 

È probabile che si verifichi un altro codice di eccezione durante il debug dei processi della console. Non si verifica a causa di un errore di programmazione. Il codice di eccezione DBG_CONTROL_C si verifica quando CTRL+C è input per un processo della console che gestisce i segnali CTRL+C ed è in corso il debug. Questo codice di eccezione non deve essere gestito dalle applicazioni. Viene generato solo per il vantaggio del debugger e viene generato solo quando un debugger è collegato al processo della console.

ExceptionFlags

Questo membro può essere zero, che indica un'eccezione continuabile o EXCEPTION_NONCONTINUABLE, che indica un'eccezione non contigua. Qualsiasi tentativo di continuare l'esecuzione dopo un'eccezione non contigua causa l'eccezione EXCEPTION_NONCONTINUABLE_EXCEPTION.

ExceptionRecord

Puntatore a una struttura di MINIDUMP_EXCEPTION associata. I record delle eccezioni possono essere concatenati per fornire informazioni aggiuntive quando si verificano eccezioni annidate.

ExceptionAddress

Indirizzo in cui si è verificata l'eccezione.

NumberParameters

Numero di parametri associati all'eccezione. Questo è il numero di elementi definiti nella matrice ExceptionInformation .

__unusedAlignment

Riservato per l'allineamento dei membri della struttura multipiattaforma. Non impostare.

ExceptionInformation[EXCEPTION_MAXIMUM_PARAMETERS]

Matrice di argomenti aggiuntivi che descrivono l'eccezione. La funzione RaiseException può specificare questa matrice di argomenti. Per la maggior parte dei codici di eccezione, gli elementi della matrice non sono definiti. Per il codice di eccezione seguente, gli elementi della matrice vengono definiti come segue.

Codice eccezione Significato
EXCEPTION_ACCESS_VIOLATION
Il primo elemento della matrice contiene un flag di lettura/scrittura che indica il tipo di operazione che ha causato la violazione di accesso. Se questo valore è zero, il thread ha tentato di leggere i dati inaccessibili. Se questo valore è 1, il thread ha tentato di scrivere in un indirizzo inaccessibile.

Il secondo elemento di matrice specifica l'indirizzo virtuale dei dati inaccessibili.

Requisiti

Requisito Valore
Intestazione minidumpapiset.h (include DbgHelp.h)
Componente ridistribuibile DbgHelp.dll 5.1 o versione successiva

Vedi anche

MINIDUMP_EXCEPTION_STREAM

RaiseException