Set or alter a sticky breakpoint. using the debug registers.
Syntax:
───┬─ BR ─┬─┬─ E ─┬─ addr ─┬──────┬─┬─────────────────────┬─ └─ BRn ─┘ ├─ Wb ─┤ └─ pc ─┘ ├─── , ─── cmd ───────┤ ├─ Rb ─┤ └─ , " ─── cmd ─┬─ " ─┘ └─ Ib ─┘ │ └── ; ──┘
Parameters:
n
If a value n is specified there must be no space between the number and the BR command.
The default is to assign the lowest available number. If all 10 breakpoint numbers have been assigned then the following message appears:
Too many breakpoints
If all four debug registers are in use then the message:
Out of debug registers
is displayed.
Note:
A disabled debug register breakpoint does not commit the use of a debug register. Thus more that 4 debug register breakpoints may be defined, but only a maximum of 4 enabled at any time.
See the BE and BD commands for information on enabling and disabling breakpoints. E
This is mutually exclusive with the W and R parameters.
This is mutually exclusive with the W, I and E parameters.
This is mutually exclusive with the R, I and E parameters.
BR I2 %13f
places an I/O breakpoint on ports 13c - 13f. b may specify 1, 2 or 4 bytes and defaults to 1 byte if left blank.
Note that the IO port address must be specified as a linear address, otherwise the expression evaluator will attempt to use the base address of the current CS register to resolve the address parameter.
This is mutually exclusive with the R, W and E parameters.
Note: I/O breakpoints are only available to Pentium processors. Support for this was introduced from fix pack 29 of Warp 3.0 and base Warp 4.0, however a bug has prevented them from working correctly until Fix Pack 0 of Warp 4.0 and Fix Pack 39 of Warp 3.0. addr
The Kernel Debugger converts the address to a linear address before setting up the debug registers. If the address is invalid the definition is retained but marked disabled and invalid.
Note: Real addresses may not be used with debug register breakpoints.
The default passcount is 1, that is the breakpoint will fire on first encounter.
If no command string is specified then the default command string, as specified by the Z command will be executed.
Note: The command list must be preceded by a comma, unlike the BP command where the comma is optional.
Results & Notes:
If the specified address is valid then the breakpoint definition is accepted and enabled otherwise it is accepted but disabled and one of the following messages is generated:
Invalid selector: selector:offsetPast end of segment selector:offset
If the break-point is successfully defined then the in-built mnemonic BRn, where n corresponds to the break-point number, takes the value of the break-point address. This may be used in any address expression or any command.