16

我将 gcc 4.7 和 gcc 4.8 与 QtCreator 2.7.1 一起使用。

问题是当我使用gcc 4.8时,我无法 在调试模式下的“Locals and Expressions”窗口中看到我的变量值:

在此处输入图像描述

虽然gcc 4.7工作正常:

在此处输入图像描述

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

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

4

3 回答 3

15

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

于 2013-05-17T17:08:28.990 回答
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

于 2013-10-20T22:46:55.930 回答
2

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

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

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

Qt 项目网站或 PPA (ppa:p12/ qtcreator ) 上提供了最新 git 版本的构建,但截至今天构建已损坏。

于 2013-12-12T09:11:50.440 回答