How to use "frame addr" command in gdb?
"Nan Xiao" <[email protected]>
| Newsgroups | gmane.comp.gdb.devel |
|---|---|
| Message-ID | <[email protected]> |
Hi all,
I know there are 2 commands for selecting frame: "frame n" and "frame addr"(Selecting a Frame in gdb manual). And write a simple program to test the 2 commands.
The program is like this:
#include <stdio.h>
int func1(int a)
{
return 2 * a;
}
int func2(int a)
{
int c = 0;
c = 2 * func1(a);
return c;
}
int func3(int a)
{
int c = 0;
c = 2 * func2(a);
return c;
}
int main(void)
{
printf("%d\n", func3(10));
return 0;
}
I use gdb to debug this program, and find 'frame n' command works OK:
(gdb) bt
#0 func1 (a=10) at a.c:5
#1 0x08050b67 in func2 (a=10) at a.c:11
#2 0x08050b89 in func3 (a=10) at a.c:18
#3 0x08050bb9 in main () at a.c:24
(gdb) frame 2
#2 0x08050b89 in func3 (a=10) at a.c:18
But when I want to use "frame addr" command, it seems not work well:
(gdb) frame 0x08050bb9
#0 0x00000000 in ?? ()
(gdb) frame 0x08050b89
#0 0x00000000 in ?? ()
(gdb) frame 0x08050b92
#0 0x00000000 in ?? ()
How to use "frame addr" command? Thanks very much in advance! I can't find other reference except the manual.
P.S. My gdb is 7.8.1, and works on Solaris X86 platform.
Best Regards
Nan Xiao