mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-01-27 06:26:15 +01:00
Only call _set_abort_behavior with the ucrt.
This commit is contained in:
parent
908ed3498b
commit
77df44371e
@ -37,8 +37,6 @@
|
|||||||
#ifdef G_OS_WIN32
|
#ifdef G_OS_WIN32
|
||||||
#include <io.h>
|
#include <io.h>
|
||||||
#include <windows.h>
|
#include <windows.h>
|
||||||
#endif
|
|
||||||
#ifdef G_PLATFORM_WIN32
|
|
||||||
#include <crtdbg.h>
|
#include <crtdbg.h>
|
||||||
#endif
|
#endif
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
@ -1600,20 +1598,24 @@ void
|
|||||||
mutable_test_config_vars.test_undefined = FALSE;
|
mutable_test_config_vars.test_undefined = FALSE;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef G_PLATFORM_WIN32
|
#ifdef G_OS_WIN32
|
||||||
// don't open a window for errors (like the "abort() was called one")
|
// don't open a window for errors (like the "abort() was called one")
|
||||||
_CrtSetReportMode(_CRT_ERROR, _CRTDBG_MODE_FILE);
|
_CrtSetReportMode (_CRT_ERROR, _CRTDBG_MODE_FILE);
|
||||||
_CrtSetReportFile(_CRT_ERROR, _CRTDBG_FILE_STDERR);
|
_CrtSetReportFile (_CRT_ERROR, _CRTDBG_FILE_STDERR);
|
||||||
// while gtest tests tend to use g_assert and friends
|
// while gtest tests tend to use g_assert and friends
|
||||||
// if they do use the C standard assert macro we want to
|
// if they do use the C standard assert macro we want to
|
||||||
// output a message to stderr, not open a popup window
|
// output a message to stderr, not open a popup window
|
||||||
_CrtSetReportMode(_CRT_ASSERT, _CRTDBG_MODE_FILE);
|
_CrtSetReportMode (_CRT_ASSERT, _CRTDBG_MODE_FILE);
|
||||||
_CrtSetReportFile(_CRT_ASSERT, _CRTDBG_FILE_STDERR);
|
_CrtSetReportFile (_CRT_ASSERT, _CRTDBG_FILE_STDERR);
|
||||||
// in release mode abort() will pop up a windows error
|
// in release mode abort() will pop up a windows error
|
||||||
// reporting dialog, let's prevent that.
|
// reporting dialog, let's prevent that. Only msvcrxx and
|
||||||
_set_abort_behavior(0, _CALL_REPORTFAULT);
|
// the UCRT have this function, but there's no great way to
|
||||||
|
// detect msvcrxx (that I know of) so only call this when using
|
||||||
|
// the UCRT
|
||||||
|
#ifdef _UCRT
|
||||||
|
_set_abort_behavior (0, _CALL_REPORTFAULT);
|
||||||
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
va_start (args, argv);
|
va_start (args, argv);
|
||||||
while ((option = va_arg (args, char *)))
|
while ((option = va_arg (args, char *)))
|
||||||
|
@ -3160,12 +3160,12 @@ g_check_setuid (void)
|
|||||||
void
|
void
|
||||||
g_abort (void)
|
g_abort (void)
|
||||||
{
|
{
|
||||||
/* One call to break the debugger
|
/* One call to break the debugger
|
||||||
* We check if a debugger is actually attached to
|
* We check if a debugger is actually attached to
|
||||||
* avoid a windows error reporting popup window
|
* avoid a windows error reporting popup window
|
||||||
* when run in a test harness / on CI
|
* when run in a test harness / on CI
|
||||||
*/
|
*/
|
||||||
if(IsDebuggerPresent())
|
if (IsDebuggerPresent ())
|
||||||
DebugBreak ();
|
DebugBreak ();
|
||||||
/* One call in case CRT changes its abort() behaviour */
|
/* One call in case CRT changes its abort() behaviour */
|
||||||
abort ();
|
abort ();
|
||||||
|
Loading…
Reference in New Issue
Block a user