// this function is called when an assert fails void wxOnAssert(const wxChar *szFile, int nLine, const wxChar *szCond, const wxChar *szMsg) { // FIXME MT-unsafe static bool s_bInAssert = false; if ( s_bInAssert ) { // He-e-e-e-elp!! we're trapped in endless loop wxTrap(); s_bInAssert = false; return; } s_bInAssert = true; if ( !wxTheApp ) { // by default, show the assert dialog box -- we can't customize this // behaviour ShowAssertDialog(szFile, nLine, szCond, szMsg); } else { // let the app process it as it wants wxTheApp->OnAssert(szFile, nLine, szCond, szMsg); } s_bInAssert = false; }
void wxAppConsole::OnAssert(const wxChar *file, int line, const wxChar *cond, const wxChar *msg) { ShowAssertDialog(file, line, cond, msg, GetTraits()); }
void wxAppConsoleBase::OnAssertFailure(const wxChar *file, int line, const wxChar *func, const wxChar *cond, const wxChar *msg) { #if wxDEBUG_LEVEL ShowAssertDialog(file, line, func, cond, msg, GetTraits()); #else // this function is still present even in debug level 0 build for ABI // compatibility reasons but is never called there and so can simply do // nothing in it wxUnusedVar(file); wxUnusedVar(line); wxUnusedVar(func); wxUnusedVar(cond); wxUnusedVar(msg); #endif // wxDEBUG_LEVEL/!wxDEBUG_LEVEL }