From d10d441087dc1a7edd44eebe40c78db7b652a7fc Mon Sep 17 00:00:00 2001 From: Jose Antonio Ortega Ruiz Date: Sat, 21 Jul 2001 22:09:03 +0000 Subject: conditional breakpoints --- doc/mdk_gstart.texi | 6 +++++- doc/mdk_mixvm.texi | 48 ++++++++++++++++++++++++++++++++++++++++++++---- 2 files changed, 49 insertions(+), 5 deletions(-) (limited to 'doc') diff --git a/doc/mdk_gstart.texi b/doc/mdk_gstart.texi index 4c8b025..25764a0 100644 --- a/doc/mdk_gstart.texi +++ b/doc/mdk_gstart.texi @@ -423,7 +423,11 @@ thus, in the above example we have requested a breakpoint at a line which does not correspond to a MIX instruction and the breakpoint is set at the first line containing a real instruction after the given one. To unset breakpoints, use @code{cbpa ADDRESS} and @code{cbp LINE_NO}, or -@code{cabp} to remove all currently set breakpoints. +@code{cabp} to remove all currently set breakpoints. You can also set +conditional breakpoints, i.e., tell @code{mixvm} to interrupt program +execution whenever a register, a memory cell, the comparison flag or the +overflow toggle change using the commands @w{@code{sbp[rmco]}} +(@pxref{Debug commands}). MIXAL lets you define symbolic constants, either using the @code{EQU} pseudoinstruction or starting an instruction line with a label (which diff --git a/doc/mdk_mixvm.texi b/doc/mdk_mixvm.texi index 87449b1..f5538cd 100644 --- a/doc/mdk_mixvm.texi +++ b/doc/mdk_mixvm.texi @@ -220,6 +220,7 @@ execution). @end deffn @deffn {debug command} sbp line_number +@deffnx {debug command} cbp line_no Sets a breakpoint at the specified source file line number. If the line specified corresponds to a command or to a MIXAL pseudoinstruction which does not produce a MIX instruction in the binary file (such as @@ -252,22 +253,61 @@ since line 7 is the first one compiled into a MIX instruction (at address 3000). In order to @code{sbp} to work, the source file must be compiled using the @code{-g} flags, which tells @code{mixasm} to include debug information in the binary @file{.mix} file. + +The command @code{cbp} clears a (previously set) breakpoint at the given +source file line. @end deffn @deffn {debug command} spba address +@deffnx {debug command} cbpa address Sets a breakpoint at the given memory @var{address}. The argument must be a valid MIX memory address, i.e., it must belong into the range @w{[0-3999]}. Note that no check is performed to verify that the specified address is reachable during program execution. No debug information is needed to set a breakpoint by address with @code{sbpa}. +The command @code{cbpa} clears a (previously set) breakpoint at the +given memory address. +@end deffn + +@deffn {debug command} sbpr A | X | J | Ii +@deffnx {debug command} cbpr A | X | J | Ii +Sets a conditional breakpoint on the specified register change. For +instance, + +@example +sbpr I1 +@end example + +@noindent +will cause an interruption during program execution whenever the +contents or register @code{I1} changes. A previously set breakpoint is +cleared using the @code{cbpr} command. +@end deffn + +@deffn {debug command} sbpm address +@deffnx {debug command} cbpm address +Sets a conditional breakpoint on the specified memory cell change. The +argument must be a valid MIX memory address, i.e., it must belong into +the range @w{[0-3999]}. For instance, + +@example +sbpm 1000 +@end example + +@noindent +will cause an interruption during program execution whenever the +contents or of the memory cell number 1000 changes. A previously set +breakpoint is cleared using the @code{cbpm} command. @end deffn -@deffn {debug command} cbp line_no -Clears a (previously set) breakpoint at the given source file line. +@deffn {debug command} sbpo +@deffnx {debug command} cbpo +Sets/clears a conditional breakpoint on overflow toggle change. @end deffn -@deffn {debug command} cbpa address -Clears a (previously set) breakpoint at the given memory address. +@deffn {debug command} sbpc +@deffnx {debug command} cbpc +Sets/clears a conditional breakpoint on comparison flag change. @end deffn @deffn {debug command} cabp -- cgit v1.2.3