The accesses to trace are specified as (read, write, or execute) on address for and object implementing the breakpoint interface. This is typically a memory space object such as physical memory. Accesses intersecting the given range will be traced. By default only instruction execution is traced, but any subset of read, write, and execute accesses can traced using combinations of -r, -w, and -x.
length is the interval length in bytes (default is 1).
For convenience the tracing is on memory connected to the current frontend processor (see pselect
). Default is to trace virtual address accesses (in the current context). By prefixing the address with p: it is possible to trace on physical accesses as well.
Use prefix to trace instructions with this prefix. For example, a prefix "add" will trace instructions that begins with "add". The text to compare the prefix with for an instruction is the one which the instruction is disassembled to. The comparison is case insensitive.
Use substr to trace instructions with a certain syntax substring. For example, specifying a substring "r31" will trace instructions containing the substring "r31". The match is case insensitive.
Use pattern to trace instructions with a certain bit-pattern. First the mask will be applied to the instruction and then the result will be compared with the pattern. For example, a pattern "0x0100" and mask "0x0101" will trace instructions whose first byte has the lowest bit set and the second not.
Note that pattern and mask are supplied as strings with string byte order (low address first).
If object is provided, then the breakpoint functionality is added on that object.