To stop execution when a memory address has been accessed, type:
(dbx) stop access mode address-expression [, byte-size-expression] |
mode specifies how the memory was accessed. It can be composed of one or all of the letters:
The memory at the specified address has been read.
The memory has been written to.
The memory has been executed.
mode can also contain either of the following:
Stops the process after the access (default).
Stops the process before the access.
In both cases the program counter will point at the accessing instruction. The “before” and “after” refer to the side effect.
address-expression is any expression that can be evaluated to produce an address. If you give a symbolic expression, the size of the region to be watched is automatically deduced; you can override it by specifying byte-size-expression. You can also use nonsymbolic, typeless address expressions; in which case, the size is mandatory.
In the following example, execution will stop execution after any of the four bytes after the memory address 0x4762 has been read
(dbx) stop access r 0x4762, 4 |
In this example, execution will stop before the variable speed has be written to:
(dbx) stop access wb &speed |
Keep these points in mind when using the stop access command:
The event occurs when a variable is written to even if it is the same value.
By default, the event occurs after execution of the instruction that wrote to the variable. You can indicate that you want the event to occur before the instruction is executed by specifying the mode as b.
For more information on specifying an access event, see access mode address-expression [, byte-size-expression] and stop Command.