System Debug Reference Manual (32650-90888)
Chapter 4 113
System Debug Command Specifications :-Exit
DATABD
Examples
$ nmdebug > datab dp+c14,8
added: [1] 49.40150c68 for 8 bytes
Set a data breakpoint at DP+c14. (We will assume it's a global variable.) Protect 8 bytes
starting at that address.
$ nmdebug > datab r24,c4,-1
added: T[2] 49.401515d4 for c4 bytes
Set a temporary data breakpoint at the address pointed to by general register 24. For this
example we assume that r24 contains a pointer to the user's dynamic heap space. Protect
c4 bytes starting at that address. The breakpoint is a temporary breakpoint (that is, it is
deleted after it is encountered for the first time).
$ nmdebug > databl
[1] 49.40150c68 for 8 bytes
T[2] 49.401515d4 for c4 bytes
count 0/1
Now list the data breakpoints we have just set.
Limitations, Restrictions
Keep in mind that the architecture supports data breakpoints on a page basis only.
Anything more granular requires substantial software intervention.
CAUTION
Data breakpoints on process stacks are not supported, and setting
breakpoints there may crash the system.
Breakpoints set in the global data area of a user's stack are safe as long as the page
containing the global data contains only global data (that is, the process does not use that
page for stacking procedure call frames or local data).
Setting data breakpoints at addresses on a process stack can severely degrade
performance of the process.
Data breakpoints are ignored in the following circumstances:
• While on the ICS (interrupt control stack).
• While disabled.
• In a "dying" process (See ENV DYING_DEBUG).
• In a job (See ENV JOB_DEBUG).
DATABD
Debug only