google-breakpad 以外にオープンなマルチプラットフォーム クラッシュ レポート システムを知りません。google-breakpad でさえ MinGW をサポートしていません。それは私が知っていることです。アプリケーションからバックトレースを取得できます。Project Dr. Mingwは、mgwhelp.dll と exchndl.dll という優れた dll を提供しています。使用するには、次のものが必要です。
- デバッグ情報でコンパイルします。Dr. Mingw の FAQ を参照してください。
- アプリケーション バイナリに mgwhelp.dll と exchndl.dll を含めます。
- LoadLibrary("exchndl.dll") を明示的に呼び出して、アプリケーションの起動時に exchndl.dll をロードします。
たとえば、次のようにします。
QFile drmingw("exchndl.dll");
if(drmingw.exists())
{// If don't want create reports just delete exchndl.dll from installer
LoadLibrary(L"exchndl.dll");
}
クラッシュ後、バイナリと同じディレクトリにバックトレースを含むファイルbinary_name.RPTが見つかります。
他に何をしますか?
- リリース モードでは、デバッグ シンボルを取り除きます。
win32:!win32-msvc*{
# Strip debug symbols.
QMAKE_POST_LINK += objcopy --only-keep-debug bin/${TARGET} bin/${TARGET}.dbg &&
QMAKE_POST_LINK += objcopy --strip-debug bin/${TARGET} &&
QMAKE_POST_LINK += objcopy --add-gnu-debuglink="bin/${TARGET}.dbg" bin/${TARGET}
}
- 実行ごとに、.RPT ファイルが存在するかどうかを確認し、レポート ディレクトリに送信または保存します。たとえば、レポートを収集するために要点を使用します。