/////////////////////////////////////////////////////////////////////////////
// Name: stackwalk.h
-// Purpose: documentation for wxStackWalker class
+// Purpose: interface of wxStackWalker
// Author: wxWidgets team
// RCS-ID: $Id$
// Licence: wxWindows license
/**
@class wxStackWalker
@wxheader{stackwalk.h}
-
+
wxStackWalker allows an application to enumerate, or walk, the stack frames
(the function callstack).
It is mostly useful in only two situations:
programmatically get the location of the crash and, in debug builds, in
wxApp::OnAssertFailure to report the caller of the failed
assert.
-
+
wxStackWalker works by repeatedly calling
the wxStackWalker::OnStackFrame method for each frame in the
stack, so to use it you must derive your own class from it and override this
method.
-
+
This class will not return anything except raw stack frame addresses if the
debug information is not available. Under Win32 this means that the PDB file
matching the program being executed should be present. Note that if you use
even without it. Of course, all this is only @true if you build using a recent
enough version of GNU libc which provides the @c backtrace() function
needed to walk the stack.
-
+
@ref overview_debuggingoverview "debugging overview" for how to make it
available.
-
+
@library{wxbase}
@category{FIXME}
-
- @seealso
- wxStackFrame
+
+ @see wxStackFrame
*/
-class wxStackWalker
+class wxStackWalker
{
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).
-
- Up to @e maxDepth frames are walked from the innermost to the outermost one.
+ Up to @a maxDepth frames are walked from the innermost to the outermost one.
*/
void Walk(size_t skip = 1, size_t maxDepth = 200);
Enumerate stack frames from the location of uncaught exception.
This method can only be called from
wxApp::OnFatalException.
-
- Up to @e maxDepth frames are walked from the innermost to the outermost one.
+ Up to @a maxDepth frames are walked from the innermost to the outermost one.
*/
void WalkFromException(size_t maxDepth = 200);
};
+
/**
@class wxStackFrame
@wxheader{stackwalk.h}
-
+
wxStackFrame represents a single stack frame, or a single function in the call
- stack, and is used exclusively together with
+ stack, and is used exclusively together with
wxStackWalker, see there for a more detailed
discussion.
-
+
@library{wxbase}
@category{FIXME}
-
- @seealso
- wxStackWalker
+
+ @see wxStackWalker
*/
-class wxStackFrame
+class wxStackFrame
{
public:
/**
Return the address of this frame.
*/
- void* GetAddress();
+ void* GetAddress() const;
/**
Return the name of the file containing this frame, empty if
unavailable (typically because debug info is missing).
-
Use HasSourceLocation() to check whether
the file name is available.
*/
- wxString GetFileName();
+ wxString GetFileName() const;
/**
Get the level of this frame (deepest/innermost one is 0).
*/
- size_t GetLevel();
+ size_t GetLevel() const;
/**
Return the line number of this frame, 0 if unavailable.
- @sa GetFileName()
+ @see GetFileName()
*/
- size_t GetLine();
+ size_t GetLine() const;
/**
Get the module this function belongs to (empty if not available).
*/
- wxString GetModule();
+ wxString GetModule() const;
/**
Return the unmangled (if possible) name of the function containing this
frame.
*/
- wxString GetName();
+ wxString GetName() const;
/**
Return the return address of this frame.
*/
- size_t GetOffset();
+ size_t GetOffset() const;
/**
Get the name, type and value (in text form) of the given parameter.
Any pointer may be @NULL if you're not interested in the corresponding
value.
-
Return @true if at least some values could be retrieved.
-
This function currently is only implemented under Win32 and requires a PDB
file.
*/
- bool GetParam(size_t n, wxString * type, wxString * name,
- wxString * value);
+ bool GetParam(size_t n, wxString* type, wxString* name,
+ wxString* value) const;
/**
Return the number of parameters of this function (may return 0 if we
can't retrieve the parameters info even although the function does have
parameters).
*/
- size_t GetParamCount();
+ size_t GetParamCount() const;
/**
Return @true if we have the file name and line number for this frame.
*/
- bool HasSourceLocation();
+ bool HasSourceLocation() const;
};
+