User`s guide
90
Chapter 7: Debugging Machine Language Code
If expression1 is of type pointer, look at the data pointed to
and watch until it changes. If expression1 is not of type
pointer, look at the 32 bits at that address (assume the
expression evaluates to an address).
stopi [expression1|variable] at address if expression2
Tests both conditions at the given address (for machine-
level debugging). Stops if both conditions are true.
If expression1 is of type pointer, look at the data pointed to
and watch until it changes. If expression1 is not of type
pointer, look at the 32 bits at that address (assume the
expression evaluates to an address).
stopi [expression1|variable] in procedure if expression2
Tests the expression each time that the given variable
changes within the given procedure.
If expression1 is of type pointer, look at the data pointed to
and watch until it changes. If expression1 is not of type
pointer, look at the 32 bits at that address (assume the
expression evaluates to an address).
Note: When you stop execution because of a machine-level breakpoint set
by one of the stopi in commands, a where command at the point of stop may
yield an incorrect stack trace. This is because the stack for the function is not
completely set up until several machine instructions have been executed. dbx
attempts to account for this, but is sometimes unsuccessful.
Linking With DSOs
If you link with a DSO, be careful when you use the stopi at command. For
example, suppose you enter:
dbx() stopi at functionx
The breakpoint at functionx is hit only if thegp_prolog instruction is executed.
(gp_prolog is a short sequence of instructions at the beginning of the routine.)