Answers:
键入info variables
以列出“所有全局和静态变量名称”。
键入info locals
以列出“当前堆栈框架的局部变量”(名称和值),包括该函数中的静态变量。
键入info args
以列出“当前堆栈框架的参数”(名称和值)。
y
将y.1913
在编译时重命名为。
y
在函数中有一个静态变量,foo
而y
在中有另一个bar
。为了区分它们,必须为这两个分配不同的名称y
。
如果您想查看select-frame
之前使用的调用函数的局部变量info locals
例如:
(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)
select-frame
可以缩写为sel
。也可以使用frame
/ f
,也可以打印框架)
另外,由于info locals
不显示您所使用的函数的参数,请使用
(gdb) info args
例如:
int main(int argc, char *argv[]) {
argc = 6*7; //Break here.
return 0;
}
argc
并且argv
不会由显示info locals
。该消息将为“无本地人”。
参考:info locals命令。
info variables
应该是该编译单元中的静态变量,对吗?