次の方法で共有


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