User`s guide

Using Interactive Function Calls
55
==== interactive function call ====
For example, if the procedure foo() is interactively called from main(), you
see the following stack:
> 0 foo2(i = 9) [“/usr/var/tmp/dbx_examples/foo.c”:46, 0x10001214]
1 foo(i = 8) [“/usr/var/tmp/dbx_examples/foo.c”:40, 0x100011d4]
===== interactive function call =====
2 foo2(i = 5) [“/usr/var/tmp/dbx_examples/foo.c”:46, 0x10001214]
3 foo(i = 4) [“/usr/var/tmp/dbx_examples/foo.c”:40, 0x100011d4]
4 main(argc = 1, argv = 0xffffffad78) [“/usr/var/tmp/dbx_examples/
test4.c”:25, 0x10000fa0]
5 __start() [“/shamu/lib/libc/libc_64/csu/crt1text.s”:137, 0x10000f34]
Nesting Interactive Function Calls
You can also nest interactive function calls. In other words, if you have one
or more breakpoints in a function, and you call that function repeatedly, each
interactive call is stacked on top of the previous call. Breakpoints in a
function affect all nesting levels, so you cannot have different breakpoints at
different nesting levels.
The where command shows the entire stack trace from which you can
determine the nesting depth. The following example has two nesting levels.
(dbx) where
> 0 foo2(i = 17) [“/usr/var/tmp/dbx_examples/foo.c”:46,
0x10001214]
1 foo(i = 16) [“/usr/var/tmp/src/dbx_examples/foo.c”:40,
0x100011d4]
===== interactive function call =====
2 foo2(i = 9) [“/usr/var/tmp/dbx_examples/foo.c”:46,
0x10001214]
3 foo(i = 8) [“/usr/var/tmp/dbx_examples/foo.c”:40,
0x100011d4]
===== interactive function call =====
4 foo2(i = 5) [“/usr/var/tmp/dbx_examples/foo.c”:46,
0x10001214]