-- BP.mesa last edit, Johnsson July 15, 1980 10:45 AM
DIRECTORY
DebugFormat USING [BBHandle, BreakType, Foo],
MachineDefs USING [GFHandle, UBBPointer],
PrincOps USING [BytePC, SVPointer],
Tree USING [NodeName];
BP: DEFINITIONS =
BEGIN
BBHandle: TYPE = DebugFormat.BBHandle;
GFHandle: TYPE = MachineDefs.GFHandle;
BytePC: TYPE = PrincOps.BytePC;
-- Break Blocks
WriteUserBB: PROCEDURE [ubb: MachineDefs.UBBPointer];
FindUserBB: PROCEDURE [gf: GFHandle, pc: BytePC] RETURNS [CARDINAL];
GetUserBB: PROCEDURE [gf: GFHandle, pc: BytePC] RETURNS [CARDINAL];
FreeUserBB: PROCEDURE [gf: GFHandle, pc: BytePC];
Alloc: PROC RETURNS [BBHandle];
Free: PROC [BBHandle];
DeleteBB: PROCEDURE [bb: BBHandle] RETURNS [last: BOOLEAN];
FindBB: PROCEDURE [gf: GFHandle, pc: BytePC] RETURNS [bb: BBHandle];
FindModBB: PROCEDURE [gf: GFHandle, pc: BytePC] RETURNS [bb: BBHandle];
FindBBNum: PROC [CARDINAL] RETURNS [BBHandle];
ResetBBs: PROCEDURE;
EnumerateBBs: PROCEDURE [
proc: PROC [BBHandle] RETURNS [BOOLEAN], gf: GFHandle ← NIL]
RETURNS [BBHandle];
-- Breakpoints
BreakEntry, BreakExit, TraceEntry, TraceExit: PROC [proc: STRING];
ClearEntryBreak, ClearXitBreak: PROC [proc: STRING];
ClearEntryTrace, ClearXitTrace: PROC [proc: STRING];
BreakAllEntries, BreakAllXits: PROCEDURE [mod, exp: STRING];
TraceAllEntries, TraceAllXits: PROCEDURE [mod, exp: STRING];
ClearAllEntries, ClearAllXits: PROCEDURE [mod: STRING];
ClearBreak: PROC [bbNum: STRING];
ClearDefault: PROC [BBHandle];
AttachCondition: PROC [bbNum, cond: STRING];
AttachExpression: PROC [bbNum, exp: STRING];
ClearCondition: PROC [bbNum: STRING];
ClearExpression: PROC [bbNum: STRING];
ListBreak: PROC [bbNum: STRING];
ClearAllBreaks, ListBreaks: PROCEDURE;
-- Utilities
OctalBreak, ClearOctal: PROCEDURE [gf, pc: STRING];
Insert: PROCEDURE [
gf: GFHandle, pc: BytePC, bt: DebugFormat.BreakType, haveSyms: BOOLEAN]
RETURNS [bb: BBHandle];
Remove: PROCEDURE [gf: GFHandle, pc: BytePC];
Conditionalize: PROCEDURE [BBHandle, STRING];
Condition: PROC [left: DebugFormat.Foo, rel: Tree.NodeName, right: DebugFormat.Foo];
Expressionalize: PROCEDURE [BBHandle, STRING];
List: PROC [BBHandle];
Validate: PROCEDURE [PrincOps.SVPointer] RETURNS [BOOLEAN];
Error: TYPE = {
tooManyConditions, invalidRelation, conditionNotFound, size, stack,
portI, notExchangable, notFound, noneSet, noSym, noFGT, inInline,
alreadySet, noReturn, worryOn, spare1, spare2, spare3, spare4};
Fail: SIGNAL [type: Error];
AbortWithError: PROC [err: Error];
WriteError: PROC [err: Error];
AppendError: PROC [STRING, Error];
END.