VS 2008 c ++ debug:不显示特定函数的局部变量?

时间:2014-01-13 17:15:10

标签: c++ visual-studio-2008 visual-studio-debugging

我正在尝试调试我写的一些c ++代码 它有几个函数,都在同一个c ++文件中,类似于

static void b( int i ) {
     int k = i * 2;
}
static void a( int j ) {
     for( int l = 0; l < j ; l++ ) {
         b( l + j );
     }
}
int main( void ) {
    a( 4 );
    return 0;
}

我在调试模式下编译了代码,并在函数b中放置了一个断点。 代码编译良好,调试器在断点 BUT
停止 当我尝试检查局部变量k的值时,我得到了

  

CXX0017:错误:未找到符号“k”

我可以看到i的值 - 输入参数 此外,如果我单击调用堆栈中的调用函数a,我可以检查参数变量j和局部变量l ......

有没有人遇到过如此悲惨的情况?

2 个答案:

答案 0 :(得分:4)

当您的断点点击并在您有机会检查它之前被摧毁时,k可能不构造。

尝试在之后添加一行代码,其中k正在初始化,然后在那里中断。

static void b( int i ) {
     int k = i * 2;
     bool bk = true; // <== BREAKPOINT HERE
}

答案 1 :(得分:1)

我明白了:我笨到腐败我的筹码。我做得非常优雅,所以我仍然可以看到“调用堆栈”,但有关特定框架中局部变量的信息已损坏。更加小心和尊重地处理记忆解决了这个恼人的问题。

感谢您John的努力。