C++ 检查堆栈上的局部变量
当使用C++ 检查堆栈上的局部变量,c++,eclipse,gdb,C++,Eclipse,Gdb,当使用Eclipse和gcc进行调试时,如果我在堆栈中选择一个与最深的帧不同的帧,则会发生以下情况。在表达式中,我可以键入任何局部变量,然后得到值 但是,使用控制台窗口与gcc对话,我得到以下信息 p coeff_table No symbol "coeff_table" in current context. 如何告诉gcc引用此局部变量?您需要选择包含coeff_表的堆栈框架 更改帧的典型命令是frame/f命令。打印回溯(bt命令)以获取帧的编号,然后选择该帧。选择正确的帧后,应该能够打
Eclipse
和gcc
进行调试时,如果我在堆栈中选择一个与最深的帧不同的帧,则会发生以下情况。在表达式中
,我可以键入任何局部变量,然后得到值
但是,使用控制台
窗口与gcc
对话,我得到以下信息
p coeff_table
No symbol "coeff_table" in current context.
如何告诉gcc引用此局部变量?您需要选择包含
coeff_表的堆栈框架
更改帧的典型命令是frame
/f
命令。打印回溯(bt
命令)以获取帧的编号,然后选择该帧。选择正确的帧后,应该能够打印coeff_表
局部变量的值
以为例,假设回溯为:
(gdb) bt
#0 set_quotes (lq=0x34c78 "", rq=0x34c88 "")
at input.c:530
#1 0x6344 in m4_changequote (argc=3, argv=0x33c70)
at builtin.c:882
#2 0x8174 in expand_macro (sym=0x33320) at macro.c:242
#3 0x7a88 in expand_token (obs=0x0, t=209696, td=0xf7fffa30)
at macro.c:71
#4 0x79dc in expand_input () at macro.c:40
#5 0x2930 in main (argc=0, argv=0xf7fffb20) at m4.c:195
请参见和coeff_table
在当前堆栈框架中是局部变量吗?@JoachimPileborg,coeff_table
是堆栈框架中的局部变量,不是最深的,但我已在“调试”窗口(即调用堆栈窗口)中单击了它。谢谢,这很好。或者您可以执行“bt full”如果希望在所有帧中列出局部变量。
(gdb) f 3