gdb从函数中打印静态变量

时间:2014-08-12 20:44:03

标签: c++ gdb

我们有一个C ++程序,例如:

int&
Instance()
{
    static int test;
    return test;
}

int
main( int argc, char ** argv )
{
    int& test = Instance();
    printf("%d\n",test);

    return 0;
}

现在我正在尝试打印Instance :: test,正如一些gdb文档所建议的那样:ftp://ftp.gnu.org/old-gnu/Manuals/gdb/html_node/gdb_52.html

但是,这会产生:

(gdb)p Instance :: test

没有符号"测试"在指定的背景下。

我正在使用-O0 -g进行编译。

1 个答案:

答案 0 :(得分:7)

(gdb) p 'Instance()::test'

适用于Ubuntu 14.04,gdb 7.7,g ++ 4.8.2。我怎么知道那是符号?

$ nm -C a.out | grep test
0000000000601040 d Instance()::test