|
|
Occasionally, an interrupt frame is encountered in a stack trace, and the output is somewhat different:
BREAKPOINT:
D006B351 clock+165 clock+165
debug0:2> stack
E0000D30 clock(D00629A3, D0060158, 216) <- clock_int+1C
clock_int() <- INT [E0000D30]
E0000DA8 INTERRUPT <- s5readi+1E9
E0000DDC s5readi(D00FCE40) <- rdwr+14F
E0000DE8 rdwr() <- read+B
E0000E2C read() <- systrap+2F0
E0000E38 systrap(E0000E38) <- sys_call+3D
Note that the routine called from the interrupt is shown as
coming from INT (in this example, clock_int
)
and has no ebp register value given.
The value given next to the INT (here,
E0000D30) is the location of the register values at the time of
the interrupt, and can be dumped using r.
The next line in the stack trace shows where the interrupt occurred.
If address is given, the stack trace will start there instead of at the current value of %ebp.