X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/eaff0f0d3f7828c2acd9ebde4979acc0b3fa43b5..a7689c49fe02c0c065facf736ab28b19f5997b7c:/include/wx/stackwalk.h diff --git a/include/wx/stackwalk.h b/include/wx/stackwalk.h index 298317ef7d..ed91376986 100644 --- a/include/wx/stackwalk.h +++ b/include/wx/stackwalk.h @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////// -// Name: wx/wx/stackwalk.h +// Name: wx/stackwalk.h // Purpose: wxStackWalker and related classes, common part // Author: Vadim Zeitlin // Modified by: @@ -16,7 +16,9 @@ #if wxUSE_STACKWALKER -class WXDLLIMPEXP_BASE wxStackFrame; +class WXDLLIMPEXP_FWD_BASE wxStackFrame; + +#define wxSTACKWALKER_MAX_DEPTH (200) // ---------------------------------------------------------------------------- // wxStackFrame: a single stack level @@ -27,7 +29,7 @@ class WXDLLIMPEXP_BASE wxStackFrameBase private: // put this inline function here so that it is defined before use wxStackFrameBase *ConstCast() const - { return wx_const_cast(wxStackFrameBase *, this); } + { return const_cast(this); } public: wxStackFrameBase(size_t level, void *address = NULL) @@ -130,19 +132,21 @@ public: // number of them (this can be useful when Walk() is called from some known // location and you don't want to see the first few frames anyhow; also // notice that Walk() frame itself is not included if skip >= 1) - virtual void Walk(size_t skip = 1) = 0; + virtual void Walk(size_t skip = 1, size_t maxDepth = wxSTACKWALKER_MAX_DEPTH) = 0; +#if wxUSE_ON_FATAL_EXCEPTION // enumerate stack frames from the location of uncaught exception // // this version can only be called from wxApp::OnFatalException() - virtual void WalkFromException() = 0; + virtual void WalkFromException(size_t maxDepth = wxSTACKWALKER_MAX_DEPTH) = 0; +#endif // wxUSE_ON_FATAL_EXCEPTION protected: // this function must be overrided to process the given frame virtual void OnStackFrame(const wxStackFrame& frame) = 0; }; -#ifdef __WXMSW__ +#ifdef __WINDOWS__ #include "wx/msw/stackwalk.h" #elif defined(__UNIX__) #include "wx/unix/stackwalk.h"