/* * PROJECT: ReactOS C runtime library * LICENSE: BSD - See COPYING.ARM in the top level directory * FILE: lib/sdk/crt/stdlib/abort.c * PURPOSE: abort implementation * PROGRAMMER: Timo Kreuzer (timo.kreuzer@reactos.org) */ #include "precomp.h" #include unsigned int __abort_behavior = _WRITE_ABORT_MSG | _CALL_REPORTFAULT; static const char abort_msg[] = "This application has requested the Runtime to terminate in an unusual way.\n" "Please contact the application's support team for more information.\0"; /*! * \brief Aborts the program. * * \note The function does not return. */ void __cdecl abort ( void) { /* Check if a message should be output */ if (__abort_behavior & _WRITE_ABORT_MSG) { /* Check if we should display a message box */ if (((msvcrt_error_mode == _OUT_TO_DEFAULT) && (__app_type == _GUI_APP)) || (msvcrt_error_mode == _OUT_TO_MSGBOX)) { /* Output a message box */ __crt_MessageBoxA(abort_msg, MB_OK | MB_ICONERROR); } else { /* Print message to stderr */ fprintf(stderr, "%s\n", abort_msg); } } /* Check if faultrep handler should be called */ if (__abort_behavior & _CALL_REPORTFAULT) { /// \todo unimplemented (void)0; } raise(SIGABRT); _exit(3); }