From: Vadim Zeitlin Date: Tue, 21 Mar 2006 15:47:24 +0000 (+0000) Subject: show the function in which the assert failure occured if the compiler supports it X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/3ec4a23f50e12b2e7d780543bc87744d1b4a00b4?ds=sidebyside show the function in which the assert failure occured if the compiler supports it git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@38253 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/docs/latex/wx/app.tex b/docs/latex/wx/app.tex index b0ad4a4595..b96f27b08d 100644 --- a/docs/latex/wx/app.tex +++ b/docs/latex/wx/app.tex @@ -268,16 +268,16 @@ Returns 0 under X, and the wParam of the WM\_QUIT message under Windows. %%\helpref{wxWindow::OnCharHook}{wxwindowoncharhook}, \helpref{wxDialog::OnCharHook}{wxdialogoncharhook} -\membersection{wxApp::OnAssert}\label{wxapponassert} +\membersection{wxApp::OnAssertFailure}\label{wxapponassertfailure} -\func{void}{OnAssert}{\param{const wxChar }{*file}, \param{int }{line}, \param{const wxChar }{*cond}, \param{const wxChar }{*msg}} +\func{void}{OnAssertFailure}{\param{const wxChar }{*file}, \param{int }{line}, \param{const wxChar }{*func}, \param{const wxChar }{*cond}, \param{const wxChar }{*msg}} This function is called when an assert failure occurs, i.e. the condition specified in \helpref{wxASSERT}{wxassert} macro evaluated to {\tt false}. It is only called in debug mode (when {\tt \_\_WXDEBUG\_\_} is defined) as asserts are not left in the release code at all. -The base class version show the default assert failure dialog box proposing to +The base class version shows the default assert failure dialog box proposing to the user to stop the program, continue or ignore all subsequent asserts. \wxheading{Parameters} @@ -286,7 +286,10 @@ the user to stop the program, continue or ignore all subsequent asserts. \docparam{line}{the line number in this file where the assert occurred} -\docparam{cond}{the condition of the failed assert in string form} +\docparam{func}{the name of the function where the assert occurred, may be +empty if the compiler doesn't support C99 \texttt{\_\_FUNCTION\_\_}} + +\docparam{cond}{the condition of the failed assert in text form} \docparam{msg}{the message specified as argument to \helpref{wxASSERT\_MSG}{wxassertmsg} or \helpref{wxFAIL\_MSG}{wxfailmsg}, will diff --git a/include/wx/app.h b/include/wx/app.h index 8b813caa33..02e57755fa 100644 --- a/include/wx/app.h +++ b/include/wx/app.h @@ -245,13 +245,22 @@ public: // debugging support // ----------------- +#ifdef __WXDEBUG__ // this function is called when an assert failure occurs, the base class // version does the normal processing (i.e. shows the usual assert failure // dialog box) // - // the arguments are the place where the assert occurred, the text of the + // the arguments are the location of the failed assert (func may be empty + // if the compiler doesn't support C99 __FUNCTION__), the text of the // assert itself and the user-specified message -#ifdef __WXDEBUG__ + virtual void OnAssertFailure(const wxChar *file, + int line, + const wxChar *func, + const wxChar *cond, + const wxChar *msg); + + // old version of the function without func parameter, for compatibility + // only, override OnAssertFailure() in the new code virtual void OnAssert(const wxChar *file, int line, const wxChar *cond,