Google Breakpad API の使用方法を完全に誤解している可能性があります。その場合は、コメント、提案、失礼な発言を歓迎します。次の C++ 関数を呼び出そうとしています。
bool WriteMinidumpForException(EXCEPTION_POINTERS* exinfo);
私はへの参照を持っていますstd::exception
:
try {
return QApplication::notify(receiver, event);
} catch (std::exception &ex) {
eh_.WriteMinidumpForException(?????);
// ... do some more stuff and ultimately kill this process
}
(eh_
はgoogle_breakpad::ExceptionHandler
です。)
??????には何を入れますか?
背景:これが必要な理由 (私が思うに) は、Qt がイベント ハンドラーでスローされる例外をサポートしないためです。正しく伝播されないため、例外の実際のコンテキストが失われているため、Breakpad が生成するミニダンプはまったく役に立ちません。代わりに、すべての例外をキャッチして、オーバーライドで処理する必要がありますQApplication::notify()
。これは、私がやろうとしていることです。例外が発生した場合は、その例外のミニダンプをすぐに書き込んで (これは実行するようWriteMinidumpForException
に聞こえます)、ユーザーに通知してアプリケーションを終了します。EXCEPTION_POINTERS*
しかし、パラメータとして何を渡せばよいかわかりません。