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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.