KallistiOS  2.0.0
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups
stack.h
Go to the documentation of this file.
1 /* KallistiOS 2.0.0
2 
3  arch/dreamcast/include/arch/stack.h
4  (c)2002 Dan Potter
5 
6 */
7 
8 /** \file arch/stack.h
9  \brief Stack traces.
10 
11  The functions in this file deal with doing stack traces. These functions
12  will do a stack trace, as specified, printing it out to stdout (usually a
13  dcload terminal). These functions only work if frame pointers have been
14  enabled at compile time (-DFRAME_POINTERS and no -fomit-frame-pointer flag).
15 
16  \author Dan Potter
17 */
18 
19 #ifndef __ARCH_STACK_H
20 #define __ARCH_STACK_H
21 
22 #include <sys/cdefs.h>
23 __BEGIN_DECLS
24 
25 #include <arch/types.h>
26 
27 /** \brief Do a stack trace from the current function.
28 
29  This function does a stack trace from the current function, printing the
30  results to stdout. This is used, for instance, when an assertion fails in
31  assert().
32 
33  \param n The number of frames to leave off. Each frame is a
34  jump to subroutine or branch to subroutine. assert()
35  leaves off 2 frames, for reference.
36 */
37 void arch_stk_trace(int n);
38 
39 /** \brief Do a stack trace from the current function.
40 
41  This function does a stack trace from the the specified frame pointer,
42  printing the results to stdout. This could be used for doing something like
43  stack tracing a main thread from inside an IRQ handler.
44 
45  \param fp The frame pointer to start from.
46  \param n The number of frames to leave off.
47 */
48 void arch_stk_trace_at(uint32 fp, int n);
49 
50 __END_DECLS
51 
52 #endif /* __ARCH_EXEC_H */
53