This is the mail archive of the
gdb@sourceware.org
mailing list for the GDB project.
How to use "frame addr" command in gdb?
- From: "Nan Xiao" <xiaonan19830818 at qq dot com>
- To: "gdb" <gdb at sourceware dot org>
- Date: Wed, 19 Nov 2014 13:45:41 +0800
- Subject: How to use "frame addr" command in gdb?
- Authentication-results: sourceware.org; auth=none
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