我将 gcc 4.7 和 gcc 4.8 与 QtCreator 2.7.1 一起使用。
问题是当我使用gcc 4.8时,我无法 在调试模式下的“Locals and Expressions”窗口中看到我的变量值:
虽然gcc 4.7工作正常:
我试图通过使用 QtCreator 选项来修复此问题,但无济于事。
我不确定,如果这实际上与编译器版本有关,但是一旦我用旧版本重建,问题就会消失。
我将 gcc 4.7 和 gcc 4.8 与 QtCreator 2.7.1 一起使用。
问题是当我使用gcc 4.8时,我无法 在调试模式下的“Locals and Expressions”窗口中看到我的变量值:
虽然gcc 4.7工作正常:
我试图通过使用 QtCreator 选项来修复此问题,但无济于事。
我不确定,如果这实际上与编译器版本有关,但是一旦我用旧版本重建,问题就会消失。
原因可能是 gcc 4.8 默认使用更新的格式来存储调试信息(http://gcc.gnu.org/gcc-4.8/changes.html)。如果您使用的 gdb 版本低于 7.5(请参阅 参考资料gdb --version
),您需要提供-gdwarf-3
参数以使用 gcc 4.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。