Next: General commands, Previous: Assembly commands, Up: Monitor [Contents][Index]

### 12.5 Checkpoint commands

`break [load|store|exec] [address [address] [if <cond_expr>]]`

  This command allows setting a breakpoint or listing the current breakpoints. If no address is given, the currently valid checkpoints are printed. If an address is given, a breakpoint is set for that address and the breakpoint number is printed. The "load|store|exec" parameter can be either "load", "store" or "exec" (or any combination of these) to determine on which operation the monitor breaks. If not specified, the monitor breaks on "exec". A conditional expression can also be specified for the breakpoint. For more information on conditions, see the CONDITION command.

`enable <checknum>`
`disable <checknum>`

  Each checkpoint can be enabled or disabled. This command allows changing between these states.

`command <checknum> "<command>"`

  When checkpoint `checknum` is hit, the specified command is executed by the monitor. Note that the `x` command is not yet supported as a command argument.

`condition <checknum> if <cond_expr>`
`cond <checknum> if <cond_expr>`

  Each time the specified checkpoint is examined, the condition is evaluated. If it evalutes to true, the checkpoint is activated. Otherwise, it is ignored. If registers are specified in the expression, the values used are those at the time the checkpoint is examined, not when the condition is set.

  The condition can use registers (A, X, Y, PC, SP, FL and other cpu specific registers (see manual)) and compare them (==, !=, <, >, <=, >=) against other registers or constants. RL can be used to refer to the current rasterline, and CY refers to the current cycle in the line.

  Full expressions are also supported (+, -, *, /, &&, ||). This let’s you f.e. to check specific bits in the FL register using the bitwise boolean operators. Paranthises are also supported in the expression. Registers can be the registers of other devices; this is denoted by a memspace prefix (i.e., c:, 8:, 9:, 10:, 11: Examples: A == $0, X == Y, 8:X == X) You can also compare against the value of a memory location in a specific bank, i.e you can break only if the vic register $d020 is $f0. use the form @[bankname]:[$<address>] | [.label]. Note this is for the C : memspace only. Examples : if @io:$d020 == $f0, if @io:.vicBorder == $f0

`delete <checknum>`
`del <checknum>`

  Delete the specified checkpoint.

`ignore <checknum> [<count>]`

  Ignore a checkpoint after a given number of crossings. If no count is given, the default value is 1.

`trace [load|store|exec] [address [address] [if <cond_expr>]]`
`tr [load|store|exec] [address [address] [if <cond_expr>]]`

  This command is similar to the `break` command except that it operates on tracepoints. A tracepoint differs from a breakpoint by not stopping execution but simply printing the PC, giving the user an execution trace. The second optional address can be used to specify the end of an range of addresses to be traced. If no addresses are given, a list of all the checkpoints is printed. The "load|store|exec" parameter can be either "load", "store" or "exec" (or any combination of these) to determine which operation the monitor traces. If not specified, the monitor traces all operations. A conditional expression can also be specified for the tracepoint. For more information on conditions, see the CONDITION command.

`until [<address>]`
`un [<address>]`

  If no address is given, the currently valid breakpoints are printed. If an address is given, a temporary breakpoint is set for that address and the breakpoint number is printed. Control is returned to the emulator by this command. The breakpoint is deleted once it is hit.

`watch [load|store|exec] [address [address] [if <cond_expr>]]`
`w [load|store|exec] [address [address] [if <cond_expr>]]`

  This command is similar to the `break` command except that it operates on watchpoints. A watchpoint differs from a breakpoint by stopping on a read and/or write to an address or range of addresses. If no addresses are given, a list of all the checkpoints is printed. The "load|store|exec" parameter can be either "load", "store" or "exec" (or any combination of these) to determine on which operation the monitor breaks. If not specified, the monitor breaks on "load" and "store" operations. A conditional expression can also be specified for the watchpoint. For more information on conditions, see the CONDITION command.

`dummy [on|off|toggle]`

  Control whether the checkpoints will trigger on dummy accesses. If the argument is ’on’ then dummy accesses will cause checkpoints to trigger. If the argument is ’off’ then dummy accesses will not trigger any checkpoints. If the argument is ’toggle’ then the current mode is switched. No argument displays the current state.

Next: General commands, Previous: Assembly commands, Up: Monitor [Contents][Index]