KallistiOS git master
Independent SDK for the Sega Dreamcast
|
UBC breakpoint structure. More...
#include <ubc.h>
Data Fields | ||
void * | address | |
Target address. | ||
ubc_address_mask_t | address_mask | |
Address mask. | ||
ubc_access_t | access | |
Access type. | ||
struct { | ||
bool break_before | ||
Break before instruction execution. More... | ||
} | instruction | |
Instruction access type settings. | ||
struct { | ||
ubc_rw_t rw | ||
Read/write condition. More... | ||
ubc_size_t size | ||
Size condition. More... | ||
struct { | ||
bool enabled | ||
Enables data value comparisons. More... | ||
uint32_t value | ||
Data value for operand accesses. More... | ||
uint32_t mask | ||
Exclusion mask for data value comparison. More... | ||
} data | ||
Optional operand data settings. More... | ||
} | operand | |
Operand access type settings. | ||
struct { | ||
bool enabled | ||
Enables ASID value comparisons. More... | ||
uint8_t value | ||
ASID value. More... | ||
} | asid | |
Optional ASID settings. | ||
struct ubc_breakpoint * | next | |
Next breakpoint in the sequence. | ||
UBC breakpoint structure.
This structure contains all of the information needed to configure a breakpoint using the SH4's UBC. It is meant to be zero-initialized, with the most commonly preferred, general values being the defaults, so that the only member that must be initialized to a non-zero value is ubc_breakpoint_t::address.
enable
members! ubc_access_t ubc_breakpoint_t::access |
Access type.
Controls which type of access to the target address(es) to break on.
void* ubc_breakpoint_t::address |
Target address.
Address used as the target or base memory address of a breakpoint.
ubc_address_mask_t ubc_breakpoint_t::address_mask |
Address mask.
Controls which of the low bits of ubc_breakpoint_t::address get excluded from the address comparison.
struct { ... } ubc_breakpoint_t::asid |
Optional ASID settings.
These settings are used used when the MMU is enabled to distinguish between memory pages with the same virtual address.
bool ubc_breakpoint_t::break_before |
Break before instruction execution.
Causes the breakpoint to be triggered just before the target instruction is actually executed.
struct { ... } ubc_breakpoint_t::data |
Optional operand data settings.
These settings allow for triggering an operand-access breakpoint on a particular value or range of values.
bool ubc_breakpoint_t::enabled |
Enables data value comparisons.
Enables ASID value comparisons.
Must be enabled for data value comparisons to be used.
Must be enabled for ASID values to be used.
struct { ... } ubc_breakpoint_t::instruction |
Instruction access type settings.
Contains settings which are specific to instruction (or either) type accesses.
uint32_t ubc_breakpoint_t::mask |
Exclusion mask for data value comparison.
Controls which bits get masked off and excluded from operand-access value comparisons.
struct ubc_breakpoint* ubc_breakpoint_t::next |
Next breakpoint in the sequence.
Allows you to chain up to two breakpoint conditions together, creating a sequential breakpoint.
struct { ... } ubc_breakpoint_t::operand |
Operand access type settings.
Contains settings which are specific to operand (or either) type accesses.
ubc_rw_t ubc_breakpoint_t::rw |
Read/write condition.
Controls read/write condition for operand-access breakpoints
ubc_size_t ubc_breakpoint_t::size |
Size condition.
Controls size condition for operand-access breakpoints
uint32_t ubc_breakpoint_t::value |
Data value for operand accesses.
Value to use for data comparisons with operand-access breakpoints.
uint8_t ubc_breakpoint_t::value |
ASID value.
Sets the required ASID value for the virtual address given by ubc_breakpoint_t::address to match for a particular breakpoint.