Oberon || Library || Module Index || Search Engine || Definition || Module


Ulm's Oberon Library:
SysStacks


NAME

SysStacks - examination of coroutine stacks

SYNOPSIS

TYPE Stack = RECORD END;


PROCEDURE Open(VAR stack: Stack; cr: Coroutines.Coroutine); PROCEDURE Next(VAR stack: Stack; VAR base, top, pc: SysTypes.UntracedAddress) : BOOLEAN;

DESCRIPTION

SysStacks offers a system-independent interface for the examination of coroutine stacks. This is used by the garbage collection (see SysStorage) and may find applications in debugging scenarios. Open opens the stack of the coroutine cr for examination. Next returns, beginning from the topmost procedure invocation, the registers pointing to the beginning of the activation record (base), the end of the activation record (top), and the associated program counter (pc). Multiple calls of Next allow to advance to the calling procedures until the begin of the stack is reached where Next returns FALSE.

Please note that neither Open nor Next allocate storage using NEW or other methods. Hence, both operations can be safely called during garbage collections or other critical moments.

SEE ALSO

Memory
address space management
SysModules
may be used to map program counters into module / procedure combinations
SysStorage
garbage collection

Edited by: borchert, last change: 2005/08/24, revision: 1.2, converted to HTML: 2005/08/24

Oberon || Library || Module Index || Search Engine || Definition || Module