ソフトウェアの実行プロセス中に、メモリの範囲外、メモリアクセス、スタックオーバーフロー、スレッドスタックオーバーフロー、nullポインタ、ワイルドポインタなどの異常なクラッシュが頻繁に発生します。デバッグとリリースのデバッグに依存するだけでは不十分です。いくつかのクラッシュは必要ありません。今、またはデバッグの下に表示するのは難しいです。したがって、ソフトウェアに例外キャプチャモジュールを追加し、windbgを使用して後で分析するために例外がキャプチャされたときに、例外コンテキストを含むダンプファイルを生成する必要があります。この記事では、例外コールバック関数を設定する方法と、例外情報を保存するダンプファイルを生成する方法を簡単に紹介します。
1.API関数SetUnhandledExceptionFilterの概要
Windowsシステムは、次のように宣言される例外処理関数を設定するためのAPI関数SetUnhandledExceptionFilterを提供します。
LPTOP_LEVEL_EXCEPTION_FILTER SetUnhandledExceptionFilter(
[in] LPTOP_LEVEL_EXCEPTION_FILTER lpTopLevelExceptionFilter
);
この関数のパラメーターはsetexception処理関数であり、APIはシステムのデフォルトの例外処理関数のアドレスを返します。ソフトウェアで例外が発生すると、例外が返されます