How to use "frame addr" command in gdb?

Nan Xiao xiaonan19830818@qq.com
Wed Nov 19 05:46:00 GMT 2014


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


More information about the Gdb mailing list