MINIDUMP_EXCEPTION 構造体 (minidumpapiset.h)
例外情報を格納します。
構文
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;
メンバー
ExceptionCode
例外が発生した理由。 これは、ハードウェア例外によって生成されたコード、またはソフトウェアによって生成された例外の RaiseException 関数で指定されたコードです。 一般的なプログラミング エラーが原因で発生する可能性がある例外コードを次に示します。
値 |
意味 |
- EXCEPTION_ACCESS_VIOLATION
|
スレッドが、適切なアクセス権を持たない仮想アドレスからの読み取りまたは書き込みを試行しました。
|
- EXCEPTION_ARRAY_BOUNDS_EXCEEDED
|
スレッドが範囲外の配列要素にアクセスしようとしましたが、基になるハードウェアは境界チェックをサポートしています。
|
- EXCEPTION_BREAKPOINT
|
ブレークポイントが見つかりました。
|
- EXCEPTION_DATATYPE_MISALIGNMENT
|
スレッドが、アラインメントを提供しないハードウェア上で不整合なデータの読み取りまたは書き込みを試みました。 たとえば、16 ビット値は 2 バイト境界に配置する必要があります。4 バイト境界上の 32 ビット値など。
|
- EXCEPTION_FLT_DENORMAL_OPERAND
|
浮動小数点演算のオペランドの 1 つは非正規化です。 非正規値は、小さすぎて標準の浮動小数点値として表されない値です。
|
- EXCEPTION_FLT_DIVIDE_BY_ZERO
|
スレッドが浮動小数点値を 0 の浮動小数点除数で除算しようとしました。
|
- EXCEPTION_FLT_INEXACT_RESULT
|
浮動小数点演算の結果を小数部として正確に表すことはできません。
|
- EXCEPTION_FLT_INVALID_OPERATION
|
この例外は、このリストに含まれていない浮動小数点例外を表します。
|
- EXCEPTION_FLT_OVERFLOW
|
浮動小数点演算の指数が、対応する型で許容される大きさを超えています。
|
- EXCEPTION_FLT_STACK_CHECK
|
浮動小数点演算の結果として、スタックがオーバーフローまたはアンダーフローされました。
|
- EXCEPTION_FLT_UNDERFLOW
|
浮動小数点演算の指数は、対応する型で許容される大きさよりも小さくなります。
|
- EXCEPTION_ILLEGAL_INSTRUCTION
|
スレッドが無効な命令を実行しようとしました。
|
- EXCEPTION_IN_PAGE_ERROR
|
スレッドが存在しないページにアクセスしようとしましたが、システムがページを読み込めませんでした。 たとえば、この例外は、ネットワーク経由でプログラムを実行しているときにネットワーク接続が失われた場合に発生する可能性があります。
|
- EXCEPTION_INT_DIVIDE_BY_ZERO
|
スレッドが整数値を 0 の整数除数で除算しようとしました。
|
- EXCEPTION_INT_OVERFLOW
|
整数演算の結果により、結果の最も重要なビットが実行されました。
|
- EXCEPTION_INVALID_DISPOSITION
|
例外ハンドラーから、例外ディスパッチャーに無効な処理が返されました。 C などの高度な言語を使用するプログラマは、この例外に遭遇することはありません。
|
- EXCEPTION_NONCONTINUABLE_EXCEPTION
|
指定できない例外が発生した後に、スレッドが実行を続行しようとしました。
|
- EXCEPTION_PRIV_INSTRUCTION
|
スレッドは、現在のマシン モードで操作が許可されていない命令を実行しようとしました。
|
- EXCEPTION_SINGLE_STEP
|
トレース トラップまたはその他の単一命令メカニズムは、1 つの命令が実行されたことを通知しました。
|
- EXCEPTION_STACK_OVERFLOW
|
スレッドがスタックを使い果たしました。
|
コンソール プロセスのデバッグ時に、別の例外コードが発生する可能性があります。 これは、プログラミング エラーのため発生しません。 DBG_CONTROL_C例外コードは、CTRL + C シグナルを処理し、デバッグ中のコンソール プロセスに Ctrl + C が入力されるときに発生します。 この例外コードはアプリケーションによって処理されるものではありません。 デバッガーの利点のみを目的として発生し、デバッガーがコンソール プロセスにアタッチされている場合にのみ発生します。
ExceptionFlags
このメンバーは、連続可能な例外を示す 0、またはEXCEPTION_NONCONTINUABLEで、変換不可能な例外を示します。 続行できない例外の後に実行を続行しようとすると、EXCEPTION_NONCONTINUABLE_EXCEPTION例外が発生します。
ExceptionRecord
関連付けられた MINIDUMP_EXCEPTION 構造体へのポインター。 例外レコードを連結して、入れ子になった例外が発生したときに追加情報を提供できます。
ExceptionAddress
例外が発生したアドレス。
NumberParameters
例外に関連付けられているパラメーターの数。 これは ExceptionInformation 配列内の定義された要素の数です。
__unusedAlignment
クロスプラットフォーム構造体メンバーの配置用に予約されています。 設定しないでください。
ExceptionInformation[EXCEPTION_MAXIMUM_PARAMETERS]
例外を記述する追加の引数の配列。 RaiseException 関数では、この引数の配列を指定できます。 ほとんどの例外コードでは、配列要素は未定義です。 次の例外コードでは、配列要素は次のように定義されます。
例外コード |
意味 |
- EXCEPTION_ACCESS_VIOLATION
|
配列の最初の要素には、アクセス違反の原因となった操作の種類を示す読み取り/書き込みフラグが含まれています。 この値が 0 の場合、スレッドはアクセスできないデータを読み取ろうとしました。 この値が 1 の場合、スレッドはアクセスできないアドレスに書き込もうとしました。
2 番目の配列要素は、アクセスできないデータの仮想アドレスを指定します。
|
要件
要件 |
値 |
Header |
minidumpapiset.h (DbgHelp.h を含む) |
再頒布可能パッケージ |
DbgHelp.dll 5.1 以降 |
こちらもご覧ください
MINIDUMP_EXCEPTION_STREAM
RaiseException