2009-08-14 1 views
1

(Win32プラットフォームC++) __tryと__finallyを使用して、例外の原因のモジュール名(And address)を取得するにはどうすればよいですか?私はGetExceptionInformation()を呼び出すが、私はこの情報がどこにあるかわからない。_EXCEPTION_POINTERS構造体を指定して構造化例外を発生させたモジュール名を取得するにはどうすればよいですか? (Win32 C++)

オンラインで、MSDNでMinidumpハンドラやその他のサンプルコードを入手できるように見えますが、わかりません。

参考文献以上の啓発リソースがあれば幸いです。

答えて

1

this CodeProject articleに記載されているように、コールスタックを歩きたい。

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

+0

私はそれを調べるでしょう、ありがとう。 – Tim

3

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

+0

なんらかの理由で、私は自分のアドレスにアクセスできることを知っていましたが、私はこれらの呼び出しを使用しないと思っていました。何らかの理由でどこかに隠された情報があると思っていました。カバーの下でやっている。 – Tim

関連する問題