我正在使用gcc 4.7和gcc 4.8以及QtCreator 2.7.1。
问题是,当我使用 gcc 4.8 时,我无法在"本地和表达式" 窗口中看到我的变量值在调试模式下:
虽然 gcc 4.7 正常工作:
我试图通过使用QtCreator选项来修复此问题,但无济于事。
我不确定,如果这实际上与编译器版本有关,但是一旦我使用旧版本重建问题就会消失。
答案 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版本,但构建版本已于今天发布。