我们有一个C++程序,例如:
int&
Instance()
{
static int test;
return test;
}
int
main( int argc, char ** argv )
{
int& test = Instance();
printf("%d\n",test);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
现在我正在尝试打印Instance :: test,正如一些gdb文档所建议的那样:ftp://ftp.gnu.org/old-gnu/Manuals/gdb/html_node/gdb_52.html
但是,这会产生:
(gdb)p Instance :: test
在指定的上下文中没有符号"test".
我正在使用-O0 -g进行编译.
小智 7
(gdb) p 'Instance()::test'
Run Code Online (Sandbox Code Playgroud)
适用于Ubuntu 14.04,gdb 7.7,g ++ 4.8.2.我怎么知道这是象征?
$ nm -C a.out | grep test
0000000000601040 d Instance()::test
Run Code Online (Sandbox Code Playgroud)