StackTrace.mesa
Copyright Ó 1990, 1991 by Xerox Corporation. All rights reserved.
Linda Howe, February 9, 1990 1:06:40 pm PST
Bill Jackson (bj) February 15, 1990 6:20:34 pm PST
Last changed by Pavel on April 30, 1990 6:16 pm PDT
Spreitze, December 20, 1990 11:09 am PST
DIRECTORY
Rope USING [ROPE];
StackTrace: CEDAR DEFINITIONS
~ BEGIN
FramePointer: TYPE ~ POINTER TO Frame;
Frame: TYPE;
ProgramCounter: TYPE ~ POINTER TO Instruction;
Instruction: TYPE;
FrameInfo: TYPE ~ REF FrameInfoBody;
FrameInfoBody: TYPE ~ RECORD [
index: NAT,
pc: ProgramCounter,
fp: FramePointer,
sp: FramePointer
];
Names: TYPE ~ REF NamesBody;
NamesBody: TYPE ~ RECORD [
loadedFileName: Rope.ROPE,
loadedTextStart, embeddedTextStart: CARD,
embeddedDotONames: LIST OF Rope.ROPE,
procName: Rope.ROPE
];
FrameProc: TYPE ~ PROC [frame: FrameInfo, names: Names] RETURNS [quit: BOOL];
NoStack: ERROR [msg: Rope.ROPE];
Either thread doesn't exist, or runtime support failed.
Trace: PROC [thread: CARD32, callback: FrameProc];
Enumerate thread's stack from hottest to coldest frame.
END.