www.delorie.com/gnu/docs/guile/guile_393.html   search  
 
Buy GNU books!


Guile Reference Manual

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

35.3 Capturing the Stack or Innermost Stack Frame

When an error occurs in a running program, or the program hits a breakpoint, its state at that point can be represented by a stack of all the evaluations and procedure applications that are logically in progress at that time, each of which is known as a frame. The programmer can learn more about the program's state at the point of interruption or error by inspecting the stack and its frames.

Scheme Procedure: make-stack obj . args
C Function: scm_make_stack (obj, args)
Create a new stack. If obj is #t, the current evaluation stack is used for creating the stack frames, otherwise the frames are taken from obj (which must be either a debug object or a continuation).

args should be a list containing any combination of integer, procedure and #t values.

These values specify various ways of cutting away uninteresting stack frames from the top and bottom of the stack that make-stack returns. They come in pairs like this: (inner_cut_1 outer_cut_1 inner_cut_2 outer_cut_2 ...).

Each inner_cut_N can be #t, an integer, or a procedure. #t means to cut away all frames up to but excluding the first user module frame. An integer means to cut away exactly that number of frames. A procedure means to cut away all frames up to but excluding the application frame whose procedure matches the specified one.

Each outer_cut_N can be an integer or a procedure. An integer means to cut away that number of frames. A procedure means to cut away frames down to but excluding the application frame whose procedure matches the specified one.

If the outer_cut_N of the last pair is missing, it is taken as 0.

Scheme Procedure: last-stack-frame obj
C Function: scm_last_stack_frame (obj)
Return a stack which consists of a single frame, which is the last stack frame for obj. obj must be either a debug object or a continuation.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

  webmaster     delorie software   privacy  
  Copyright 2003   by The Free Software Foundation     Updated Jun 2003