2012-07-05 3 views
6

私はgoogle-breakpadを使用しています。 これはバックグラウンドで実行され、別のプロセスのクラッシュを報告するバグ報告プログラムです。Googleブレイクパッドがすべてのクラッシュを処理しないのはなぜですか?これらのケースをどのようにデバッグできますか?

ほとんどすべての状況で動作します。

ただし、時折クラッシュすることがありません。レポートもダンプファイルもありません。 ちょうどクラッシュします。クラッシュの最後の手掛かりは、Windowsのイベントメッセージです。

どのようにこれらのクラッシュをデバッグできますか?ブレークパッドがクラッシュを処理しない原因は何ですか?どのような方法で状況をデバッグすることができますか?

+0

これらはSEHの例外ですか?彼らはスタックオーバーフローやアクセス違反のようなものですか? –

+0

スタックオーバーフローに関係するかもしれないと思います。 Breakpadはアクセス違反をよく捕捉しています。 – Hybrid

+1

Breakpadは、SetUnhandledExceptionFilter()関数(ウィンドウ)を使用していると言います。この状況でプロセスが終了する前に、SetUnhandledExceptionFilterのコールバック関数が呼び出されたかどうかはわかりません。 – Hybrid

答えて

10

特定の状況でVisual C++ C/C++ランタイムライブラリによってフックセットがSetUnhandledExceptionFilterに削除されます。たとえば、バッファオーバーフローまたはその他のセキュリティ問題を検出した場合などです。

This Microsoft feedback pageには、ほとんどのケースでこの動作を停止する方法が記載されていますが、セキュリティ上の問題が発生することはありません。

+0

私はMicrosoftのフィードバックページを見ることができません - 私は見ることができる新しいリンクがありますか? –

+4

ページが404になったようです。私はそれが何であるかを覚えていませんが、_set_abort_behaviorと_set_invalid_parameter_handlerのMSDNドキュメントを試してみてください。 –

関連する問題