Qt Creator在Windows上使用gdb调试时无法显示本地变量

3
我最近遇到了一个问题,无法使用Qt Creator的调试视图。没有本地变量显示出来,表达式评估器只能在某种程度上工作。
我创建了这个小型C程序来演示这个问题,尽管在标准的Qt应用程序中也会发生这种情况。
#include <stdio.h>

int main() {
    int square, cube, i; // Breakpoint set in this line
    for (i = 1; i <= 10; i++) {
        square = i * i;
        cube = i * square;
        printf("i=%i \ti^2=%i \ti^3=%i\n", i, square, cube);
    }
    return 0;
}

当我使用GDB以调试模式运行此程序时,它会像应该一样在断点处停止,并且可以正常向前步进,但是没有显示任何本地变量。尽管如此,这不是一个调试器问题,因为如果我从命令行运行gdb,我可以轻松获取变量。表达式求值器确实起作用:它显示您键入的表达式的值,但是如果变量更改,则该表达式永远不会更新。
这是调试程序时的外观。您可以看到表达式有效,但未显示任何本地变量。
我安装的版本如下:
操作系统:Windows 10
Qt:5.10.0 for MinGW 32 bit
GCC:5.3.0 MinGW 32 bit(我只安装了Qt安装程序中推荐的那个)
GDB:7.10.1 for MinGW 5.3.0
QtCreator:4.5.0
我已经尝试过使用更新版本的gcc和gdb进行完全相同的操作,结果完全相同。同时,使用g ++也发生了同样的事情。

有人知道我该怎么解决这个问题吗?我很喜欢使用QtCreator,但如果无法解决这个问题,我可能不得不回到其他IDE。
哦,如果需要更多信息,请告诉我!

1个回答

0
我也遇到了这个问题。我在编译标志中添加了-O0,尝试了一些其他人推荐的解决方案,但都没有成功。最近我改变了调试器设置,但不记得是哪些。几分钟前,我终于解决了它。
转到“工具”->“选项”->“调试器”->“GDB”,取消“加载系统GDB漂亮打印机”的选中状态。现在,在触发断点后,我可以在右窗格中看到本地和作用域变量。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接