DIRECTORY AMModel USING [Section], IO USING [STREAM], PrincOps USING [PsbNull, PsbIndex], Rope USING [ROPE]; SpyClient: DEFINITIONS = BEGIN OPEN Rope; StackType: TYPE = CARDINAL [0..7); DataType: TYPE = {CPU, process, breakProcess, pagefaults, allocations, wordsAllocated, userDefined}; InitializeSpy: PROC [dataType: DataType _ CPU, process: PrincOps.PsbIndex _ PrincOps.PsbNull, spyOnSpyLog: BOOL _ FALSE] RETURNS [errorMsg: ROPE]; StandardSpy: PROC = INLINE {IF InitializeSpy[].errorMsg # NIL THEN ERROR}; StartSpy: PROC; StopSpy: PROC; DisplayData: PROC [cutoff: CARDINAL _ 3, herald: ROPE _ NIL, stream: IO.STREAM _ NIL, spyOnSpyLog: BOOL _ FALSE]; SetStartBreak: PROC [section: AMModel.Section _ NIL, procedure: ROPE _ NIL, sourceIndex: INT _ 0] RETURNS [ok: BOOL, msg: ROPE]; SetStopBreak: PROC [section: AMModel.Section _ NIL, procedure: ROPE _ NIL, sourceIndex: INT _ 0] RETURNS [ok: BOOL, msg: ROPE]; ClearBreaks: PROC; SetUserBreak: PROC [section: AMModel.Section _ NIL, type: StackType _ 0, procedure: ROPE _ NIL, sourceIndex: INT _ 0] RETURNS [ok: BOOL, msg: ROPE]; SetTrace: PROC [section: AMModel.Section _ NIL, procedure: ROPE _ NIL, sourceIndex: INT _ 0] RETURNS [ok: BOOL, msg: ROPE]; ClearUserBreaks: PROC; END. . „SpyClient.mesa Copyright c 1985 by Xerox Corporation. All rights reserved. Maxwell November 29, 1983 11:27 am see SpyDoc.tioga for instructions on how to use this interface Russ Atkinson (RRA) March 8, 1985 6:50:43 pm PST common procedures process is only used if dataType = process spyOnSpyLog is used by DisplayData errorMsg = NIL indicates success the spy records data whenever # starts exceeds # stops you must StartSpy to enable breaks ... displays data (automatically stops Spy); cutoff gives cutoff of printing (in percentage points); herald is the client supplied herald (follows Cedar Spy of xxx); a typescript is opened if stream = NIL break procedures ... sets a breakpoint that will start Spying whenever the breakpoint is encountered. procedure is of form "ModuleIMPL.Proc" & is only used if section = NIL; if sourceIndex # 0, then treat `procedure' as a filename. ... sets a breakpoint that will stop Spying whenever the breakpoint is encountered. procedure is of form "ModuleIMPL.Proc" & is only used if section = NIL (breakpoint is set at the RETURN); if sourceIndex # 0, then treat `procedure' as a filename. clears all stop and start breaks log a count whenever this break is encountered; type allows the user to distinguish breaks; procedure is of form "ModuleImpl.Proc"; only used if section = NIL; if sourceIndex # 0, then treat `procedure' as a filename sets a break such that Spy writes a trace on the spy log whenever this break is encountered; procedure is of form "ModuleImpl.Proc"; only used if section = NIL; if sourceIndex # 0, then treat `procedure' as a filename clears all stop and start breaks; clears the traces, too. Κά˜codešœ™Kšœ Οmœ1™™>K™0—K˜šΟk ˜ Kšœžœ ˜Kšžœžœžœ˜Kšœ žœ˜#Kšœžœžœ˜K˜—Kšœ ž œžœžœ˜)K˜Kšœ žœžœ˜"Kšœ žœžœO˜dK˜šœ™K˜šΟn œžœžœ>žœžœžœ žœ˜’Kšœ*™*KšœΟc™"Kšœ ™ K™—šŸ œžœžœžœžœžœžœ˜JK˜—šŸœžœ˜Kšœ8™8K˜—šŸœžœ˜Kšœ#™#K˜—šŸ œžœ žœžœžœ žœžœžœžœžœ˜qKšœΙž™Μ—K˜—šœ™K˜šŸ œžœžœžœžœžœžœžœžœ˜‚Kšœ™žœ;™ΧK˜—šŸ œžœžœ žœžœžœžœžœžœ˜Kšœ˜žœžœ<™ψK˜—šŸ œžœ˜Kšœ ™ —K˜šŸ œžœžœ#žœžœžœžœžœžœ˜•KšœŽΟi Πikœ:™ΨK˜—šŸœžœžœ žœžœžœžœžœžœ˜{Kšœj $Πci‘£ 8™ΩK™—šŸœžœ˜Kšœ9™9—K˜—šžœ˜K˜——…—ζF