1

(Win32 プラットフォーム c++) __try と __finally を使用して、例外の原因のモジュール名 (およびアドレス) を取得するにはどうすればよいですか? GetExceptionInformation() を呼び出しますが、この情報がどこにあるのかわかりません。

オンラインおよび MSDN の他のリソースを考えると、Minidump ハンドラーと他のサンプル コードはそれを取得できるようですが、方法はわかりません。

参考文献またはより啓発的なリソースを歓迎します。

4

2 に答える 2

3

EXCEPTION_POINTERSによって提供されるEXCEPTION_RECORDレコードには、例外が発生したアドレスが含まれています。次に、おそらくEnumProcessModules()とGetModuleInformation()を使用して、例外アドレスが含まれるモジュールを見つけ、GetModuleFileNameEx()を使用してそのモジュールのファイル名を取得できます。

于 2009-08-14T19:09:38.130 に答える
1

この CodeProject の記事で説明されているように、コールスタックをウォークします。

Jochen のコードをそのまま使用することも、必要な情報を抽出するのに十分な詳細を収集することもできます。

于 2009-08-14T18:58:13.147 に答える