Added wxAbort() which can also be used under Windows CE.

Windows CE doesn't have abort() so provide a wrapper which can be used even
there (see #13847).

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70311 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin 2012-01-10 17:01:13 +00:00
parent 864c08b2ed
commit 975dc6910e
4 changed files with 28 additions and 5 deletions

View File

@ -299,6 +299,13 @@ extern void WXDLLIMPEXP_BASE wxOnAssert(const char *file,
#define wxASSERT_LEVEL_2(cond)
#endif
// This is simply a wrapper for the standard abort() which is not available
// under all platforms.
//
// It isn't really debug-related but there doesn't seem to be any better place
// for it, so declare it here and define it in appbase.cpp, together with
// wxTrap().
extern void WXDLLIMPEXP_BASE wxAbort();
/*
wxCHECK macros always check their conditions, setting debug level to 0 only

View File

@ -9,6 +9,17 @@
/** @addtogroup group_funcmacro_debug */
//@{
/**
Exits the program immediately.
This is a simple wrapper for the standard abort() function which is not
available under all platforms (currently only Windows CE doesn't provide
it).
@since 2.9.4
*/
void wxAbort();
/**
@def wxDEBUG_LEVEL

View File

@ -1006,6 +1006,15 @@ bool wxAssertIsEqual(int x, int y)
return x == y;
}
void wxAbort()
{
#ifdef __WXWINCE__
ExitThread(3);
#else
abort();
#endif
}
#if wxDEBUG_LEVEL
// break into the debugger

View File

@ -355,11 +355,7 @@ wxLog::OnLog(wxLogLevel level,
{
wxSafeShowMessage(wxS("Fatal Error"), msg);
#ifdef __WXWINCE__
ExitThread(3);
#else
abort();
#endif
wxAbort();
}
wxLog *logger;