如何使用gcc 4.8使“本地和表达式”调试窗口运行?

时间:2013-05-17 14:35:30

标签: gcc qt-creator

我正在使用gcc 4.7和gcc 4.8以及QtCreator 2.7.1。

问题是,当我使用 gcc 4.8 时,我无法在"本地和表达式" 窗口中看到我的变量值在调试模式下:

enter image description here

虽然 gcc 4.7 正常工作:

enter image description here

我试图通过使用QtCreator选项来修复此问题,但无济于事。

我不确定,如果这实际上与编译器版本有关,但是一旦我使用旧版本重建问题就会消失。

3 个答案:

答案 0 :(得分:15)

原因可能是gcc 4.8默认使用更新的格式来存储调试信息(http://gcc.gnu.org/gcc-4.8/changes.html)。如果您使用的gdb版本低于7.5(请参阅gdb --version),则需要提供-gdwarf-3参数,以便使用gcc 4.8编译调试信息。

答案 1 :(得分:8)

使用太新的调试器可能会导致相同的症状,而不是太旧

在这种情况下,它不是关于GDB版本,而是关于在构建时嵌入到它的Python版本。 Ubuntu 13.10附带了一个用嵌入式Python3而不是Python2构建的GDB。 Qt Creator(在撰写本文时)与此不兼容。

您可以通过从终端运行并输入以下内容来检查您是否拥有Python2 GDB:

(gdb) python print sys.version

如果您收到无效的语法错误,您可能已经获得了Python3。这需要围绕要打印的内容括号,所以请尝试:

(gdb) python print(sys.version)

当回复3.x.x时,Qt Creator的Python调试脚本将无法正常工作。因此,您需要使用Python2获取GDB。

以下是我的博客文章:QtCreator Debugger Not Showing Locals in Ubuntu 13.10

答案 2 :(得分:2)

就我而言,这是HostileFork所描述的:ubuntu 13.10 + Qt Creator 2.8

bug已在Qt Creator 3中修复,尚未发布。

要在不重新编译GDB的情况下解决此问题,只需使用Qt Creator 3的候选版本。

有一些版本可用 on Qt project website 或PPA(ppa:p12 / qtcreator)和最后一个git版本,但构建版本已于今天发布。