2008-08-14 17 views
0

COMオブジェクトがあります。場合によっては、このオブジェクトがクラッシュしてになり、多数の16進情報を含むWindowsイベントログにエラーイベントを登録することがあります。なぜこのクラッシュが起こるのかわからない。COMオブジェクトの例外をトレースする方法は?

どのようにこれらのCOMオブジェクト例外をトレースできますか?

答えて

2

最初のステップでは、失敗コードの16進値(E.G. E_FAIL 0x80004005)を検索します。私はエラーコードの意味を理解するためにGoogleにその価値を投稿することに本当にうれしかった。

次に、試行錯誤して、コードの場所を特定しようとしています。このコードは、失敗したコードの場所と失敗の根本原因です。

1

Visual Studioにパッケージされた「エラールックアップ」ツール(詳細here)を使用すると、エラーコードの意味を簡単に知ることができます。 16進数値を入力すると、エラーコードを示す文字列が表示されます。

もちろん、それが分かったら、なぜそれが起こっているのか把握しなければなりません。

1

エラー(hresult)コードを調べる良い方法は、HResult Plusまたはwelt.exe(Windowsエラー参照ツール)です。

何が起きているのかを見るために、COMクラスで内部的にログを使用します。また、COMクラスが実行可能ファイルによってロードされると、VSデバッガをアタッチして、ブレークポイント、時計、およびすべての楽しいものでCOMコードをデバッグすることができます。

1

COMオブジェクトは例外をスローしません。彼らはHRESULTを返します。そのほとんどは失敗を示します。したがって、例外スタックトレースと同等のものを探しているなら、あなたは不運です。あなたは手でコードを歩き、何が起こっているのか把握しなければならないでしょう。

関連する問題