///////////////////////////////////////////////////////////////////////////////
-// Name: wx/wx/stackwalk.h
+// Name: wx/stackwalk.h
// Purpose: wxStackWalker and related classes, common part
// Author: Vadim Zeitlin
// Modified by:
#if wxUSE_STACKWALKER
-class WXDLLIMPEXP_BASE wxStackFrame;
+class WXDLLIMPEXP_FWD_BASE wxStackFrame;
+
+#define wxSTACKWALKER_MAX_DEPTH (200)
// ----------------------------------------------------------------------------
// wxStackFrame: a single stack level
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<wxStackFrameBase *>(this); }
public:
wxStackFrameBase(size_t level, void *address = NULL)
// 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"