<breakpoint>.bp-wait-for-memory <breakpoint_manager>.delete – deprecated
Simics Reference Manual  /  3 Commands  /  3.2 Command List  / 

<breakpoint>.break – deprecated

Synopsis

<breakpoint>.break address [length] [-r] [-w] [-x]
break address [length] [-r] [-w] [-x]
<breakpoint>.tbreak address [length] [-r] [-w] [-x]

Description

Adds a breakpoint (read, write, or execute) on address for an object implementing the breakpoint interface. This is typically a memory space object such as physical memory; e.g., phys_mem0.break 0xff3800. Accesses intersecting the given range will trigger the breakpoint. By default the breakpoint will only trigger for instruction execution, but any subset of read, write, and execute accesses can be set to trigger using combinations of -r, -w, and -x.

length is the interval length in bytes (default is 1).

Breakpoints inserted with the tbreak command are automatically disabled when they have triggered.

The default action when a breakpoint triggers is to stop the simulation. This can be changed by using haps. When an execution breakpoint is triggered, Simics will stop the simulation before the instructions is executed, while instructions triggering read or write breakpoints will complete before the simulation is stopped.

To break on a virtual address, use a context object:

cpu0_context.break 0x1ff00

Several breakpoints can be set on the same address and Simics will break on them in turn. If hap handlers (callback functions) are connected to the breakpoints they will also be executed in turn. Hap handlers are called before the access is performed, allowing the user to read a memory value that may be overwritten by the access. See the Simics Reference Manual for a description of hap handlers.

Each breakpoint is associated with an id (printed when the breakpoint is set or by the list-breakpoints command) which is used for further references to the breakpoint.

For convenience there are also a global break command which sets a breakpoint on memory connected to the current frontend processor (see pselect). Default is to break on virtual address accesses (in the current context). By prefixing the address with p: it is possible to break on physical accesses as well (cf. phys_mem0.break); e.g., break p:0xffc0.

Several attributes can be set for a breakpoint for breaking only when some conditions are true. See the disable, enable, ignore, set-prefix, set-substr and set-pattern commands for more details.

Breakpoints can be removed using delete.

Provided By

Simics Core

See Also

bp.memory.break, <breakpoint>.bp-break-memory, <bp_manager>.delete, <bp_manager>.enabled, <bp_manager>.ignore-count, <bp_manager>.list, <breakpoint>.bp-wait-for-memory
<breakpoint>.bp-wait-for-memory <breakpoint_manager>.delete – deprecated