1 |
@page |
@page |
2 |
@node Debugging |
@node Debugging |
3 |
@chapter Internal Debugging Interface |
@chapter Debugging Infrastructure |
|
|
|
|
--- The name of this chapter needs to clearly distinguish it |
|
|
from the appendix describing the debugger UI. The intro |
|
|
should have a pointer to the UI appendix. |
|
|
|
|
|
@deffn {Scheme Procedure} display-error stack port subr message args rest |
|
|
@deffnx {C Function} scm_display_error (stack, port, subr, message, args, rest) |
|
|
Display an error message to the output port @var{port}. |
|
|
@var{stack} is the saved stack for the error, @var{subr} is |
|
|
the name of the procedure in which the error occurred and |
|
|
@var{message} is the actual error message, which may contain |
|
|
formatting instructions. These will format the arguments in |
|
|
the list @var{args} accordingly. @var{rest} is currently |
|
|
ignored. |
|
|
@end deffn |
|
|
|
|
|
@deffn {Scheme Procedure} display-application frame [port [indent]] |
|
|
@deffnx {C Function} scm_display_application (frame, port, indent) |
|
|
Display a procedure application @var{frame} to the output port |
|
|
@var{port}. @var{indent} specifies the indentation of the |
|
|
output. |
|
|
@end deffn |
|
|
|
|
|
@deffn {Scheme Procedure} display-backtrace stack port [first [depth]] |
|
|
@deffnx {C Function} scm_display_backtrace (stack, port, first, depth) |
|
|
Display a backtrace to the output port @var{port}. @var{stack} |
|
|
is the stack to take the backtrace from, @var{first} specifies |
|
|
where in the stack to start and @var{depth} how much frames |
|
|
to display. Both @var{first} and @var{depth} can be @code{#f}, |
|
|
which means that default values will be used. |
|
|
@end deffn |
|
|
|
|
|
@deffn {Scheme Procedure} backtrace |
|
|
@deffnx {C Function} scm_backtrace () |
|
|
Display a backtrace of the stack saved by the last error |
|
|
to the current output port. |
|
|
@end deffn |
|
|
|
|
|
@deffn {Scheme Procedure} malloc-stats |
|
|
Return an alist ((@var{what} . @var{n}) ...) describing number |
|
|
of malloced objects. |
|
|
@var{what} is the second argument to @code{scm_gc_malloc}, |
|
|
@var{n} is the number of objects of that type currently |
|
|
allocated. |
|
|
@end deffn |
|
4 |
|
|
5 |
@deffn {Scheme Procedure} debug-options-interface [setting] |
@deffn {Scheme Procedure} debug-options-interface [setting] |
6 |
@deffnx {C Function} scm_debug_options (setting) |
@deffnx {C Function} scm_debug_options (setting) |
9 |
@code{debug-disable}, @code{debug-set!} and @code{debug-options}. |
@code{debug-disable}, @code{debug-set!} and @code{debug-options}. |
10 |
@end deffn |
@end deffn |
11 |
|
|
12 |
|
|
13 |
|
@section Using Traps |
14 |
|
|
15 |
@deffn {Scheme Procedure} with-traps thunk |
@deffn {Scheme Procedure} with-traps thunk |
16 |
@deffnx {C Function} scm_with_traps (thunk) |
@deffnx {C Function} scm_with_traps (thunk) |
17 |
Call @var{thunk} with traps enabled. |
Call @var{thunk} with traps enabled. |
18 |
@end deffn |
@end deffn |
19 |
|
|
|
@deffn {Scheme Procedure} memoized? obj |
|
|
@deffnx {C Function} scm_memoized_p (obj) |
|
|
Return @code{#t} if @var{obj} is memoized. |
|
|
@end deffn |
|
|
|
|
|
@deffn {Scheme Procedure} unmemoize m |
|
|
@deffnx {C Function} scm_unmemoize (m) |
|
|
Unmemoize the memoized expression @var{m}, |
|
|
@end deffn |
|
|
|
|
|
@deffn {Scheme Procedure} memoized-environment m |
|
|
@deffnx {C Function} scm_memoized_environment (m) |
|
|
Return the environment of the memoized expression @var{m}. |
|
|
@end deffn |
|
|
|
|
|
@deffn {Scheme Procedure} procedure-name proc |
|
|
@deffnx {C Function} scm_procedure_name (proc) |
|
|
Return the name of the procedure @var{proc} |
|
|
@end deffn |
|
|
|
|
|
@deffn {Scheme Procedure} procedure-source proc |
|
|
@deffnx {C Function} scm_procedure_source (proc) |
|
|
Return the source of the procedure @var{proc}. |
|
|
@end deffn |
|
|
|
|
|
@deffn {Scheme Procedure} procedure-environment proc |
|
|
@deffnx {C Function} scm_procedure_environment (proc) |
|
|
Return the environment of the procedure @var{proc}. |
|
|
@end deffn |
|
|
|
|
20 |
@deffn {Scheme Procedure} debug-object? obj |
@deffn {Scheme Procedure} debug-object? obj |
21 |
@deffnx {C Function} scm_debug_object_p (obj) |
@deffnx {C Function} scm_debug_object_p (obj) |
22 |
Return @code{#t} if @var{obj} is a debug object. |
Return @code{#t} if @var{obj} is a debug object. |
23 |
@end deffn |
@end deffn |
24 |
|
|
|
@deffn {Scheme Procedure} frame-arguments frame |
|
|
@deffnx {C Function} scm_frame_arguments (frame) |
|
|
Return the arguments of @var{frame}. |
|
|
@end deffn |
|
|
|
|
|
@deffn {Scheme Procedure} frame-evaluating-args? frame |
|
|
@deffnx {C Function} scm_frame_evaluating_args_p (frame) |
|
|
Return @code{#t} if @var{frame} contains evaluated arguments. |
|
|
@end deffn |
|
|
|
|
|
@deffn {Scheme Procedure} frame-next frame |
|
|
@deffnx {C Function} scm_frame_next (frame) |
|
|
Return the next frame of @var{frame}, or @code{#f} if |
|
|
@var{frame} is the last frame in its stack. |
|
|
@end deffn |
|
|
|
|
|
@deffn {Scheme Procedure} frame-number frame |
|
|
@deffnx {C Function} scm_frame_number (frame) |
|
|
Return the frame number of @var{frame}. |
|
|
@end deffn |
|
|
|
|
|
@deffn {Scheme Procedure} frame-overflow? frame |
|
|
@deffnx {C Function} scm_frame_overflow_p (frame) |
|
|
Return @code{#t} if @var{frame} is an overflow frame. |
|
|
@end deffn |
|
|
|
|
|
@deffn {Scheme Procedure} frame-previous frame |
|
|
@deffnx {C Function} scm_frame_previous (frame) |
|
|
Return the previous frame of @var{frame}, or @code{#f} if |
|
|
@var{frame} is the first frame in its stack. |
|
|
@end deffn |
|
|
|
|
|
@deffn {Scheme Procedure} frame-procedure frame |
|
|
@deffnx {C Function} scm_frame_procedure (frame) |
|
|
Return the procedure for @var{frame}, or @code{#f} if no |
|
|
procedure is associated with @var{frame}. |
|
|
@end deffn |
|
|
|
|
|
@deffn {Scheme Procedure} frame-procedure? frame |
|
|
@deffnx {C Function} scm_frame_procedure_p (frame) |
|
|
Return @code{#t} if a procedure is associated with @var{frame}. |
|
|
@end deffn |
|
|
|
|
|
@deffn {Scheme Procedure} frame-real? frame |
|
|
@deffnx {C Function} scm_frame_real_p (frame) |
|
|
Return @code{#t} if @var{frame} is a real frame. |
|
|
@end deffn |
|
25 |
|
|
26 |
@deffn {Scheme Procedure} frame-source frame |
@section Capturing the Stack or Innermost Stack Frame |
|
@deffnx {C Function} scm_frame_source (frame) |
|
|
Return the source of @var{frame}. |
|
|
@end deffn |
|
|
|
|
|
@deffn {Scheme Procedure} frame? obj |
|
|
@deffnx {C Function} scm_frame_p (obj) |
|
|
Return @code{#t} if @var{obj} is a stack frame. |
|
|
@end deffn |
|
|
|
|
|
@deffn {Scheme Procedure} last-stack-frame obj |
|
|
@deffnx {C Function} scm_last_stack_frame (obj) |
|
|
Return a stack which consists of a single frame, which is the |
|
|
last stack frame for @var{obj}. @var{obj} must be either a |
|
|
debug object or a continuation. |
|
|
@end deffn |
|
27 |
|
|
28 |
@deffn {Scheme Procedure} make-stack obj . args |
@deffn {Scheme Procedure} make-stack obj . args |
29 |
@deffnx {C Function} scm_make_stack (obj, args) |
@deffnx {C Function} scm_make_stack (obj, args) |
57 |
taken as 0. |
taken as 0. |
58 |
@end deffn |
@end deffn |
59 |
|
|
60 |
|
@deffn {Scheme Procedure} last-stack-frame obj |
61 |
|
@deffnx {C Function} scm_last_stack_frame (obj) |
62 |
|
Return a stack which consists of a single frame, which is the |
63 |
|
last stack frame for @var{obj}. @var{obj} must be either a |
64 |
|
debug object or a continuation. |
65 |
|
@end deffn |
66 |
|
|
67 |
|
|
68 |
|
@section Examining the Stack |
69 |
|
|
70 |
|
@deffn {Scheme Procedure} stack? obj |
71 |
|
@deffnx {C Function} scm_stack_p (obj) |
72 |
|
Return @code{#t} if @var{obj} is a calling stack. |
73 |
|
@end deffn |
74 |
|
|
75 |
@deffn {Scheme Procedure} stack-id stack |
@deffn {Scheme Procedure} stack-id stack |
76 |
@deffnx {C Function} scm_stack_id (stack) |
@deffnx {C Function} scm_stack_id (stack) |
77 |
Return the identifier given to @var{stack} by @code{start-stack}. |
Return the identifier given to @var{stack} by @code{start-stack}. |
87 |
Return the @var{index}'th frame from @var{stack}. |
Return the @var{index}'th frame from @var{stack}. |
88 |
@end deffn |
@end deffn |
89 |
|
|
90 |
@deffn {Scheme Procedure} stack? obj |
@deffn {Scheme Procedure} display-backtrace stack port [first [depth]] |
91 |
@deffnx {C Function} scm_stack_p (obj) |
@deffnx {C Function} scm_display_backtrace (stack, port, first, depth) |
92 |
Return @code{#t} if @var{obj} is a calling stack. |
Display a backtrace to the output port @var{port}. @var{stack} |
93 |
|
is the stack to take the backtrace from, @var{first} specifies |
94 |
|
where in the stack to start and @var{depth} how much frames |
95 |
|
to display. Both @var{first} and @var{depth} can be @code{#f}, |
96 |
|
which means that default values will be used. |
97 |
|
@end deffn |
98 |
|
|
99 |
|
|
100 |
|
@section Examining Stack Frames |
101 |
|
|
102 |
|
@deffn {Scheme Procedure} frame? obj |
103 |
|
@deffnx {C Function} scm_frame_p (obj) |
104 |
|
Return @code{#t} if @var{obj} is a stack frame. |
105 |
|
@end deffn |
106 |
|
|
107 |
|
@deffn {Scheme Procedure} frame-number frame |
108 |
|
@deffnx {C Function} scm_frame_number (frame) |
109 |
|
Return the frame number of @var{frame}. |
110 |
|
@end deffn |
111 |
|
|
112 |
|
@deffn {Scheme Procedure} frame-previous frame |
113 |
|
@deffnx {C Function} scm_frame_previous (frame) |
114 |
|
Return the previous frame of @var{frame}, or @code{#f} if |
115 |
|
@var{frame} is the first frame in its stack. |
116 |
|
@end deffn |
117 |
|
|
118 |
|
@deffn {Scheme Procedure} frame-next frame |
119 |
|
@deffnx {C Function} scm_frame_next (frame) |
120 |
|
Return the next frame of @var{frame}, or @code{#f} if |
121 |
|
@var{frame} is the last frame in its stack. |
122 |
|
@end deffn |
123 |
|
|
124 |
|
@deffn {Scheme Procedure} frame-source frame |
125 |
|
@deffnx {C Function} scm_frame_source (frame) |
126 |
|
Return the source of @var{frame}. |
127 |
|
@end deffn |
128 |
|
|
129 |
|
@deffn {Scheme Procedure} frame-procedure? frame |
130 |
|
@deffnx {C Function} scm_frame_procedure_p (frame) |
131 |
|
Return @code{#t} if a procedure is associated with @var{frame}. |
132 |
|
@end deffn |
133 |
|
|
134 |
|
@deffn {Scheme Procedure} frame-procedure frame |
135 |
|
@deffnx {C Function} scm_frame_procedure (frame) |
136 |
|
Return the procedure for @var{frame}, or @code{#f} if no |
137 |
|
procedure is associated with @var{frame}. |
138 |
|
@end deffn |
139 |
|
|
140 |
|
@deffn {Scheme Procedure} frame-arguments frame |
141 |
|
@deffnx {C Function} scm_frame_arguments (frame) |
142 |
|
Return the arguments of @var{frame}. |
143 |
|
@end deffn |
144 |
|
|
145 |
|
@deffn {Scheme Procedure} frame-evaluating-args? frame |
146 |
|
@deffnx {C Function} scm_frame_evaluating_args_p (frame) |
147 |
|
Return @code{#t} if @var{frame} contains evaluated arguments. |
148 |
|
@end deffn |
149 |
|
|
150 |
|
@deffn {Scheme Procedure} frame-overflow? frame |
151 |
|
@deffnx {C Function} scm_frame_overflow_p (frame) |
152 |
|
Return @code{#t} if @var{frame} is an overflow frame. |
153 |
|
@end deffn |
154 |
|
|
155 |
|
@deffn {Scheme Procedure} frame-real? frame |
156 |
|
@deffnx {C Function} scm_frame_real_p (frame) |
157 |
|
Return @code{#t} if @var{frame} is a real frame. |
158 |
|
@end deffn |
159 |
|
|
160 |
|
@deffn {Scheme Procedure} display-application frame [port [indent]] |
161 |
|
@deffnx {C Function} scm_display_application (frame, port, indent) |
162 |
|
Display a procedure application @var{frame} to the output port |
163 |
|
@var{port}. @var{indent} specifies the indentation of the |
164 |
|
output. |
165 |
|
@end deffn |
166 |
|
|
167 |
|
|
168 |
|
@section Decoding Memoized Source Expressions |
169 |
|
|
170 |
|
@deffn {Scheme Procedure} memoized? obj |
171 |
|
@deffnx {C Function} scm_memoized_p (obj) |
172 |
|
Return @code{#t} if @var{obj} is memoized. |
173 |
|
@end deffn |
174 |
|
|
175 |
|
@deffn {Scheme Procedure} unmemoize m |
176 |
|
@deffnx {C Function} scm_unmemoize (m) |
177 |
|
Unmemoize the memoized expression @var{m}, |
178 |
|
@end deffn |
179 |
|
|
180 |
|
@deffn {Scheme Procedure} memoized-environment m |
181 |
|
@deffnx {C Function} scm_memoized_environment (m) |
182 |
|
Return the environment of the memoized expression @var{m}. |
183 |
@end deffn |
@end deffn |
184 |
|
|
185 |
|
|