home *** CD-ROM | disk | FTP | other *** search
- {$A+,B+,D+,E-,F-,I+,L+,N-,O-,R+,S+,V+}
- {$M 16384,0,655360}
- {$DEFINE Debug}
- PROGRAM debug;
- VAR
- W : Word;
- L : LongInt;
- {$IFDEF Debug}
- OldL : LongInt;
-
- PROCEDURE Nop; INLINE($90);
- {$ENDIF}
-
- PROCEDURE Debuggee(I : Integer);
- {$IFDEF Debug} CONST PassCount : Word = 0; {$ENDIF}
- BEGIN
- {$IFDEF Debug}
- IF I < 0 THEN {CONDITIONAL breakpoint}
- nop; {<=== Put IDE breakpoint (Ctrl-F8) here}
- {$ENDIF}
- I := Round(Sqrt(I));
-
- {$IFDEF Debug}
- Inc(PassCount);
- IF PassCount = 10 THEN {PASS COUNT breakpoint}
- PassCount := 0; {<=== Put IDE breakpoint (Ctrl-F8) here}
- {$ENDIF}
- END;
-
- BEGIN
- L := $DEFACED;
- {$IFDEF Debug} OldL := L; {$ENDIF}
- Randomize;
-
- FOR W := 1 to 20 DO
- Debuggee(Integer(Random(10))-1);
- FillChar(W, 4, 0); {Oooops! Accidentally overwrote L}
- {$IFDEF Debug}
- IF OldL <> L THEN {CHANGED MEMORY breakpoint}
- nop; {<=== Put IDE breakpoint (Ctrl-F8) here}
- {$ENDIF}
- END.
-