1

例外コードを知っていて、スローされた実際の例外が何を意味するかを調べる方法はありますか?

問題の私の例外: 0x64487347

例外アドレス: 0x1

コール スタックには情報が表示されません。

クラッシュの .dmp を確認していますが、実際には Visual Studio でデバッグしていません。

4

3 に答える 3

6

Microsoft のランタイムからスローされた真の C++ 例外には、0xe06d7363 (E0 + 'msc') の SEH コードがあります。他にも例外があります。

.NET は、コード 0xe0434f4d (E0 + 'COM') で SEH 例外を生成します。

NT のステータス コードは ntstatus.h に記載されており、通常は 0x80 (警告) または 0xC0 (エラー) で始まります。最も有名なのは 0xC0000005、STATUS_ACCESS_VIOLATION です。

于 2008-09-15T14:29:17.367 に答える
4

あなたはクラッシュ ダンプを確認しているので、それは顧客からのものであり、より多くのインストルメンテーションで障害を簡単に再現できないと仮定します。

例外コード 0x64487347 は ASCII の「dShG」であり、開発者はこのようなマジック ナンバーを作成するときに、ルーチンまたは障害状態のイニシャルをよく使用することに注意してください。

少しグーグルで調べてみると、適切なコンテキストで dHsg が 1 つヒットしました。これは、Kate Gregory による「Using Visual C++ 6」の Google ブック検索での関数の名前です。残念ながら、それだけでは役に立ちませんでした。

于 2008-09-14T16:13:31.930 に答える
0

どのブロックが例外をスローしたかがわかっている場合は、より具体的なハンドラーを catch ブロックに配置して、そのように分離することができますか?

自分でロールした例外をスローしていますか?

編集:非常に役立つことがわかった Visual C++ の例外に関するこの記事を紹介するのを忘れていました。

ロブ

于 2008-09-14T15:59:08.157 に答える