From 749b01f03755465790549e7b94d2a6e2eaae193e Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Sat, 9 Jun 2001 16:34:54 +0000 Subject: [PATCH] src/common git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@10471 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- docs/latex/wx/function.tex | 14 ++++++++++++++ include/wx/debug.h | 25 ++++++++++++++++++++----- 2 files changed, 34 insertions(+), 5 deletions(-) diff --git a/docs/latex/wx/function.tex b/docs/latex/wx/function.tex index d23f7160f2..9089756f5f 100644 --- a/docs/latex/wx/function.tex +++ b/docs/latex/wx/function.tex @@ -1979,6 +1979,20 @@ This function is now obsolete, replaced by \helpref{Log functions}{logfunctions} +\membersection{::wxTrap}\label{wxtrap} + +\func{void}{wxTrap}{\void} + +In debug mode (when {\tt \_\_WXDEBUG\_\_} is defined) this function generates a +debugger exception meaning that the control is passed to the debugger if one is +attached to the process. Otherwise the program just terminates abnormally. + +In release mode this function does nothing. + +\wxheading{Include files} + + + \membersection{::wxUsleep}\label{wxusleep} \func{void}{wxUsleep}{\param{unsigned long}{ milliseconds}} diff --git a/include/wx/debug.h b/include/wx/debug.h index 4fd54e2d91..82785eca9b 100644 --- a/include/wx/debug.h +++ b/include/wx/debug.h @@ -51,7 +51,13 @@ WXDLLEXPORT_DATA(extern const bool) wxFalse; szFile and nLine - file name and line number of the ASSERT szMsg - optional message explaining the reason */ - void WXDLLEXPORT wxOnAssert(const wxChar *szFile, int nLine, const wxChar *szMsg = (const wxChar *) NULL); + extern void WXDLLEXPORT wxOnAssert(const wxChar *szFile, + int nLine, + const wxChar *szMsg = NULL); + + // call this function to break into the debugger uncodnitionally (assuming + // the program is running under debugger, of course) + extern void WXDLLEXPORT wxTrap(); /* notice the usage of else at the end of wxASSERT macro: this ensures that @@ -72,7 +78,15 @@ WXDLLEXPORT_DATA(extern const bool) wxFalse; // assert with additional message explaining it's cause #define wxASSERT_MSG(cond, msg) \ if ( !(cond) ) wxOnAssert(__TFILE__, __LINE__, msg); else + + // an assert helper used to avoid warning when testing constant expressions, + // i.e. wxASSERT( sizeof(int) == 4 ) can generate a compiler warning about + // expression being always true, but not using + // wxASSERT( wxAssertIsEqual(sizeof(int), 4) ) + extern bool WXDLLEXPORT wxAssertIsEqual(int x, int y); #else + #define wxTrap() + // nothing to do in release modes (hopefully at this moment there are // no more bugs ;-) #define wxASSERT(cond) @@ -107,10 +121,11 @@ WXDLLEXPORT_DATA(extern const bool) wxFalse; #define wxCHECK2_MSG(x, op, msg) if (!(x)) {wxFAIL_MSG(msg); op; } // special form of wxCHECK2: as wxCHECK, but for use in void functions -// NB: there is only one form (with msg parameter) and it's intentional: -// there is no other way to tell the caller what exactly went wrong -// from the void function (of course, the function shouldn't be void -// to begin with...) +// +// NB: there is only one form (with msg parameter) and it's intentional: +// there is no other way to tell the caller what exactly went wrong +// from the void function (of course, the function shouldn't be void +// to begin with...) #define wxCHECK_RET(x, msg) if (!(x)) {wxFAIL_MSG(msg); return; } #endif // _WX_DEBUG_H_ -- 2.47.2