139 |
evaluation stack is used for creating the stack frames, |
evaluation stack is used for creating the stack frames, |
140 |
otherwise the frames are taken from @var{obj} (which must be |
otherwise the frames are taken from @var{obj} (which must be |
141 |
either a debug object or a continuation). |
either a debug object or a continuation). |
142 |
@var{args} must be a list of integers and specifies how the |
|
143 |
resulting stack will be narrowed. |
@var{args} should be a list containing any combination of |
144 |
|
integer, procedure and @code{#t} values. |
145 |
|
|
146 |
|
These values specify various ways of cutting away uninteresting |
147 |
|
stack frames from the top and bottom of the stack that |
148 |
|
@code{make-stack} returns. They come in pairs like this: |
149 |
|
@code{(@var{inner_cut_1} @var{outer_cut_1} @var{inner_cut_2} |
150 |
|
@var{outer_cut_2} @dots{})}. |
151 |
|
|
152 |
|
Each @var{inner_cut_N} can be @code{#t}, an integer, or a |
153 |
|
procedure. @code{#t} means to cut away all frames up to but |
154 |
|
excluding the first user module frame. An integer means to cut |
155 |
|
away exactly that number of frames. A procedure means to cut |
156 |
|
away all frames up to but excluding the application frame whose |
157 |
|
procedure matches the specified one. |
158 |
|
|
159 |
|
Each @var{outer_cut_N} can be an integer or a procedure. An |
160 |
|
integer means to cut away that number of frames. A procedure |
161 |
|
means to cut away frames down to but excluding the application |
162 |
|
frame whose procedure matches the specified one. |
163 |
|
|
164 |
|
If the @var{outer_cut_N} of the last pair is missing, it is |
165 |
|
taken as 0. |
166 |
@end deffn |
@end deffn |
167 |
|
|
168 |
@deffn primitive stack-id stack |
@deffn primitive stack-id stack |