コード例 #1
0
ファイル: main.cpp プロジェクト: lweberk/s25client
void LinExceptionHandler(int sig)
{
    if (SETTINGS.global.submit_debug_data == 1)
    {
        DebugInfo di;

        di.SendReplay();
        di.SendStackTrace();
    }

    abort();
}
コード例 #2
0
ファイル: main.cpp プロジェクト: Flow86/s25client
LONG WINAPI
#else
void
#endif
WinExceptionHandler(
#ifdef _MSC_VER
    LPEXCEPTION_POINTERS info
#else
    int sig
#endif
)
{
    if(GLOBALVARS.isTest)
    {
        std::cerr << std::endl << "ERROR: Test failed!" << std::endl;
        _exit(1);

#ifdef _MSC_VER
        return(EXCEPTION_EXECUTE_HANDLER);
#endif
    }

    if ((SETTINGS.global.submit_debug_data == 1) ||
            MessageBoxA(NULL,
                        _("RttR crashed. Would you like to send debug information to RttR to help us avoiding this crash in the future? Thank you very much!"),
                        _("Error"), MB_YESNO | MB_ICONERROR | MB_TASKMODAL | MB_SETFOREGROUND) == IDYES)
    {
        VIDEODRIVER.DestroyScreen();

        DebugInfo di;

        di.SendReplay();
        di.SendStackTrace(
#ifdef _MSC_VER
            info->ContextRecord
#endif
        );
    }

    if(SETTINGS.global.submit_debug_data == 0)
        MessageBoxA(NULL, _("RttR crashed. Please restart the application!"), _("Error"), MB_OK | MB_ICONERROR | MB_TASKMODAL | MB_SETFOREGROUND);

    _exit(1);

#ifdef _MSC_VER
    return(EXCEPTION_EXECUTE_HANDLER);
#endif
}
コード例 #3
0
ファイル: main.cpp プロジェクト: Flow86/s25client
void LinExceptionHandler(int  /*sig*/)
{
    if(GLOBALVARS.isTest)
    {
        std::cerr << std::endl << "ERROR: Test failed!" << std::endl;
        abort();
    }

    if (SETTINGS.global.submit_debug_data == 1)
    {
        DebugInfo di;

        di.SendReplay();
        di.SendStackTrace();
    }

    abort();
}