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