2017-04-12 163 views
0

我正在使用eclipse CDT调试C应用程序。一般来说,我可以在断点上一步一步地上升。但问题是我有问题要逐步查看变量。但是,如果我想看到一个char **变量称为路径列表的内容,我在变量窗口中看到这样的错误:使用Eclipse的gdb调试CDT:无法正确显示varibles的值

Failed to execute MI command: 
-data-evaluate-expression *(*(path_list)) 
Error message from debugger back end: 
value has been optimized out 

于是,我就看到变量路径列表的存储内容,但我得到了一个错误弹出:

enter image description here

拥有人关于这个问题,以及如何我可以看到路径列表的内容的想法?

+2

如果变量确实已经被优化了,即使在纯粹的'gdb'下,你也不能得到它的值。你是否建立你的程序没有优化(如gcc -O2标志)? –

+0

在项目 - >属性 - > C/C++构建 - >设置 - > GCC C编译器 - >优化,哪些优化级别和标志配置? –

+0

在项目 - >构建配置 - >设置活动,你在建立一个调试版本还是发布版本?他们默认使用不同的优化选项。 –

回答

0

确保您使用-g和-O0选项编译了代码。默认情况下,编译器不使用-O0。

+0

这是不正确的。 https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html:'-O0 - 缩短编译时间并使调试产生预期结果。这是默认设置.' –