Enthält Ausnahmeinformationen.
Syntax
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;
Member
ExceptionCode
Der Grund, warum die Ausnahme aufgetreten ist. Dies ist der Code, der von einer Hardwareausnahme generiert wird, oder der Code, der in der RaiseException-Funktion für eine softwaregenerierte Ausnahme angegeben wird. Im Folgenden sind die Ausnahmecodes aufgeführt, die wahrscheinlich aufgrund häufiger Programmierfehler auftreten.
| Wert |
Bedeutung |
-
EXCEPTION_ACCESS_VIOLATION
|
Der Thread hat versucht, aus einer virtuellen Adresse zu lesen oder in diese zu schreiben, für die er nicht über den entsprechenden Zugriff verfügt.
|
-
EXCEPTION_ARRAY_BOUNDS_EXCEEDED
|
Der Thread hat versucht, auf ein Arrayelement zuzugreifen, das außerhalb der Grenzen liegt, und die zugrunde liegende Hardware unterstützt die Begrenzungsüberprüfung.
|
-
EXCEPTION_BREAKPOINT
|
Es wurde ein Haltepunkt gefunden.
|
-
EXCEPTION_DATATYPE_MISALIGNMENT
|
Der Thread hat versucht, Daten zu lesen oder zu schreiben, die auf Hardware, die keine Ausrichtung bietet, falsch ausgerichtet sind. Beispielsweise müssen 16-Bit-Werte an 2-Byte-Grenzen ausgerichtet werden. 32-Bit-Werte an 4-Byte-Grenzen usw.
|
-
EXCEPTION_FLT_DENORMAL_OPERAND
|
Einer der Operanden in einem Gleitkommavorgang ist denormal. Ein denormaler Wert ist zu klein, um als Standard-Gleitkommawert darzustellen.
|
-
EXCEPTION_FLT_DIVIDE_BY_ZERO
|
Der Thread hat versucht, einen Gleitkommawert durch einen Gleitkomma divisor von 0 zu divisieren.
|
-
EXCEPTION_FLT_INEXACT_RESULT
|
Das Ergebnis eines Gleitkommavorgangs kann nicht genau als Dezimalbruch dargestellt werden.
|
-
EXCEPTION_FLT_INVALID_OPERATION
|
Diese Ausnahme stellt jede Gleitkomma-Ausnahme dar, die nicht in dieser Liste enthalten ist.
|
-
EXCEPTION_FLT_OVERFLOW
|
Der Exponent eines Gleitkommavorgangs ist größer als die vom entsprechenden Typ zulässige Größe.
|
-
EXCEPTION_FLT_STACK_CHECK
|
Der Stapel wurde als Ergebnis eines Gleitkommavorgangs über- oder unterlaufen.
|
-
EXCEPTION_FLT_UNDERFLOW
|
Der Exponent eines Gleitkommavorgangs ist kleiner als die vom entsprechenden Typ zulässige Größe.
|
-
EXCEPTION_ILLEGAL_INSTRUCTION
|
Der Thread hat versucht, eine ungültige Anweisung auszuführen.
|
-
EXCEPTION_IN_PAGE_ERROR
|
Der Thread hat versucht, auf eine Seite zuzugreifen, die nicht vorhanden war, und das System konnte die Seite nicht laden. Diese Ausnahme kann beispielsweise auftreten, wenn beim Ausführen eines Programms über das Netzwerk eine Netzwerkverbindung verloren geht.
|
-
EXCEPTION_INT_DIVIDE_BY_ZERO
|
Der Thread hat versucht, einen ganzzahligen Wert durch einen ganzzahligen Divisor von 0 zu divisieren.
|
-
EXCEPTION_INT_OVERFLOW
|
Das Ergebnis eines ganzzahligen Vorgangs verursachte eine Ausführung des wichtigsten Bits des Ergebnisses.
|
-
EXCEPTION_INVALID_DISPOSITION
|
Ein Ausnahmehandler hat eine ungültige Disposition an den Ausnahmeverteiler zurückgegeben. Bei Programmierern, die eine allgemeine Programmiersprache wie C verwenden, sollte diese Ausnahme nicht auftreten.
|
-
EXCEPTION_NONCONTINUABLE_EXCEPTION
|
Der Thread hat versucht, die Ausführung fortzusetzen, nachdem eine nicht zusammenhängende Ausnahme aufgetreten ist.
|
-
EXCEPTION_PRIV_INSTRUCTION
|
Der Thread hat versucht, eine Anweisung auszuführen, deren Vorgang im aktuellen Computermodus nicht zulässig ist.
|
-
EXCEPTION_SINGLE_STEP
|
Eine Ablaufverfolgungsfalle oder ein anderer Mechanismus mit einzeler Anweisung, der signalisiert, dass eine Anweisung ausgeführt wurde.
|
-
EXCEPTION_STACK_OVERFLOW
|
Der Thread hat seinen Stapel verbraucht.
|
Ein anderer Ausnahmecode tritt wahrscheinlich beim Debuggen von Konsolenprozessen auf. Es tritt nicht aufgrund eines Programmierfehlers auf. Der DBG_CONTROL_C Ausnahmecode tritt auf, wenn STRG+C in einen Konsolenprozess eingegeben wird, der STRG+C-Signale verarbeitet und debuggt wird. Dieser Ausnahmecode ist nicht für die Verarbeitung von Anwendungen vorgesehen. Es wird nur zum Nutzen des Debuggers ausgelöst und nur ausgelöst, wenn ein Debugger an den Konsolenprozess angefügt ist.
ExceptionFlags
Dieser Member kann entweder null sein, was eine fortlaufende Ausnahme angibt, oder EXCEPTION_NONCONTINUABLE, der eine nicht zusammenhängende Ausnahme angibt. Jeder Versuch, die Ausführung nach einer nicht feststellbaren Ausnahme fortzusetzen, verursacht die EXCEPTION_NONCONTINUABLE_EXCEPTION Ausnahme.
ExceptionRecord
Ein Zeiger auf eine zugeordnete MINIDUMP_EXCEPTION-Struktur . Ausnahmedatensätze können miteinander verkettet werden, um zusätzliche Informationen bereitzustellen, wenn geschachtelte Ausnahmen auftreten.
ExceptionAddress
Die Adresse, an der die Ausnahme aufgetreten ist.
NumberParameters
Die Anzahl der Parameter, die der Ausnahme zugeordnet sind. Dies ist die Anzahl der definierten Elemente im Array ExceptionInformation .
__unusedAlignment
Reserviert für die plattformübergreifende Strukturelementausrichtung. Legen Sie keinen Wert fest.
ExceptionInformation[EXCEPTION_MAXIMUM_PARAMETERS]
Ein Array zusätzlicher Argumente, die die Ausnahme beschreiben. Die RaiseException-Funktion kann dieses Array von Argumenten angeben. Bei den meisten Ausnahmecodes sind die Arrayelemente nicht definiert. Für den folgenden Ausnahmecode werden die Arrayelemente wie folgt definiert.
| Ausnahmecode |
Bedeutung |
-
EXCEPTION_ACCESS_VIOLATION
|
Das erste Element des Arrays enthält ein Lese-/Schreibflag, das den Typ des Vorgangs angibt, der die Zugriffsverletzung verursacht hat. Wenn dieser Wert 0 ist, hat der Thread versucht, die nicht zugänglichen Daten zu lesen. Wenn dieser Wert 1 ist, hat der Thread versucht, in eine Adresse zu schreiben, auf die nicht zugegriffen werden kann.
Das zweite Arrayelement gibt die virtuelle Adresse der nicht zugänglichen Daten an.
|
Anforderungen
| Anforderung |
Wert |
|
Header |
minidumpapiset.h (einschließlich DbgHelp.h) |
|
Verteilbare Komponente |
DbgHelp.dll 5.1 oder höher |
Weitere Informationen
MINIDUMP_EXCEPTION_STREAM
RaiseException