Address Monitor
The ICE-Cube
contains a powerful address monitor. The entire 1Mb address space is covered by the
monitor. Execution can stop on an access to an address that should not occur during
execution of the program. The user can create any number of address ranges with a
16-byte
resolution. Each
range can be programmed to breakpoint on execution in the range, a memory read in the
range, a memory write in the range, or any combination of these three accesses. Areas may
be left to allow any or all of these accesses to occur. To catch unwanted writes, this
small 16-byte resolution allows monitoring read-only or limited-access data structures in
RAM.
During debugging,
the user can monitor the program area in ROM or in emulation RAM for address writes to
catch the nearly impossible-to-find writes to ROM that normally go unnoticed because ROM
can't be altered. Write-protecting emulation RAM simulates a ROM environment. Not doing so
causes the program code to change, likely crashing the program at some point after the
write happens.
Finally, the user
can create large ranges of no-execute areas over variables and unused address space to
instantly catch program crashes and bad transfers through a pointer.