如何使“局部变量和表达式”调试窗口在gcc 4.8中运行?

dtcbnfnu  于 2023-08-06  发布在  其他
关注(0)|答案(4)|浏览(110)

我正在使用gcc 4.7和gcc 4.8以及QtCreator 2.7.1。
问题是我在使用gcc 4.8时,在调试模式下,无法在**“Locals and Expressions”**窗口中看到我的变量值:


的数据
虽然gcc 4.7工作正常:



我曾试图通过玩QtCreator选项来修复这个问题,但无济于事。
我不确定,如果这实际上与编译器版本有关,但一旦我用旧版本重建,问题就消失了。

pbgvytdp

pbgvytdp1#

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

krugob8w

krugob8w2#

如果调试器太新,而不是太旧,也会导致同样的症状!
在这种情况下,它不是关于GDB版本,而是关于构建时嵌入其中的Python版本。Ubuntu 13.10附带了一个GDB,它是用嵌入式Python3而不是Python 2构建的。Qt Creator(在撰写本文时)与此不兼容。
您可以通过从终端运行Python 2 GDB并键入以下命令来检查是否有Python 2 GDB:

(gdb) python print sys.version

字符串
如果你得到一个无效的语法错误,你可能得到了Python3。这需要在要打印的内容周围加上括号,因此请尝试:

(gdb) python print(sys.version)


当返回3.x.x答案时,Qt Creator的Python调试脚本将无法工作(尚未)。因此,您需要使用Python 2获取GDB。
以下是我的博客文章:QtCreator Debugger Not Showing Locals in Ubuntu 13.10的数据。

gzszwxb4

gzszwxb43#

在我的例子中,这是HostileFork所描述的:Ubuntu 13.10 + Qt Creator 2.8
bug已在Qt Creator 3中修复,尚未发布。
要解决这个问题而不需要重新编译GDB,只需使用Qt Creator 3的候选版本。
有可用的构建版本**on Qt project website**或最新git版本的PPA(ppa:p12/qtcreator),但截至今天,构建版本已损坏。

pgvzfuti

pgvzfuti4#

您需要启用视图->本地x1c 0d1x

相关问题