打印所有全局variables/局部variables?

我怎样才能打印所有的全局variables/局部variables? 在gdb中可能吗?

inputinfo variables以列出“所有全局和静态variables名称”。

键入info locals列出“当前堆栈帧的局部variables”(名称和值),包括该函数中的静态variables。

inputinfo args列出“当前栈帧的参数”(名称和值)。

如果你想查看调用函数的局部variables,请在info locals之前使用select-frame

例如:

 (gdb) bt #0 0xfec3c0b5 in _lwp_kill () from /lib/libc.so.1 #1 0xfec36f39 in thr_kill () from /lib/libc.so.1 #2 0xfebe3603 in raise () from /lib/libc.so.1 #3 0xfebc2961 in abort () from /lib/libc.so.1 #4 0xfebc2bef in _assert_c99 () from /lib/libc.so.1 #5 0x08053260 in main (argc=1, argv=0x8047958) at ber.c:480 (gdb) info locals No symbol table info available. (gdb) select-frame 5 (gdb) info locals i = 28 (gdb) 

另外,由于info locals不显示你所在函数的参数,所以使用

 (gdb) info args 

例如:

 int main(int argc, char *argv[]) { argc = 6*7; //Break here. return 0; } 

argcargv不会被info locals 。 消息将是“没有当地人”。

参考: info locals命令 。