在下面的代码中,如果我在循环内设置一个断点,则除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;
}
(我的鼠标没有显示,但是在那儿)
我已经尝试过TDM-GCC和minGW,两者都显示相同的问题。我该如何解决?
注意:我已找到问题所在。这与循环中char c
的错误有关,因为如果我从代码中排除char c
,则可以看到变量。可能与错误中的'
有关。
答案 0 :(得分:0)
问题在于 gdb 试图打印 CP65001
字符。修复是转到,设置->调试器->默认->调试器初始化命令和类型,
set charset UTF-8
。这为我解决了问题。