打印所有全局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; }
argc
和argv
不会被info locals
。 消息将是“没有当地人”。
参考: info locals命令 。