如何打印所有全局变量/局部变量?这在gdb中可行吗?
输入信息变量列出“所有全局变量和静态变量名”(庞大的列表。
输入info locals列出“当前堆栈框架的局部变量”(名称和值),包括该函数中的静态变量。
输入info args列出“当前堆栈帧的参数”(名称和值)。
此外,由于info locals不会显示您所在函数的参数,请使用
(gdb) info args
例如:
int main(int argc, char *argv[]) {
argc = 6*7; //Break here.
return 0;
}
Argc和argv不会被本地信息显示。口号是“本地人不得入内。”
参考:info locals命令。
如果你想查看调用函数的局部变量,请在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)
推荐文章
- C多行宏:do/while(0) vs作用域块
- 如何动态创建变量?
- time_t最终的类型定义是什么?
- 我需要显式处理负数或零时,总和平方数字?
- 函数名周围的括号是什么意思?
- 在PHP中对动态变量名使用大括号
- 用C语言创建自己的头文件
- 格式化IO函数(*printf / *scanf)中的转换说明符%i和%d之间的区别是什么?
- main()中的Return语句vs exit()
- 如果不是内存地址,C指针到底是什么?
- 我如何在Visual Studio中预处理后看到C/ c++源文件?
- 保护可执行文件不受逆向工程的影响?
- 创建独立变量字典的简单方法?
- PHP检查对象或类中是否存在属性
- 从C语言的函数返回一个struct