调试器中的局部变量未显示在代码块中

时间:2020-08-07 17:52:12

标签: c++ debugging gdb codeblocks

在下面的代码中,如果我在循环内设置一个断点,则除c以外的所有变量都消失(甚至x也消失了),并将其放置在循环之前的其他位置,这些变量一旦程序计数器进入循环,该信号就会消失。同样,c的值始终是字符的int值,后跟'<error reading variable>。如果将鼠标悬停在c的值上,则可以看到所有局部变量。(请参见插入)

int sq=0,s1=0,s2=0;
for(int i=0; i<10; i++)
{
    char c='a';
    int x;
    cin>>x;
}

My mouse doesn't show, but it's there

(我的鼠标没有显示,但是在那儿)

我已经尝试过TDM-GCC和minGW,两者都显示相同的问题。我该如何解决?

注意:我已找到问题所在。这与循环中char c的错误有关,因为如果我从代码中排除char c,则可以看到变量。可能与错误中的'有关。

1 个答案:

答案 0 :(得分:0)

问题在于 gdb 试图打印 CP65001 字符。修复是转到,设置->调试器->默认->调试器初始化命令和类型, set charset UTF-8。这为我解决了问题。

相关问题