我使用gcc 4.7和gcc 4.8以及QtCreator 2.7.1。如何使用gcc 4.8使「Locals and Expressions」調試窗口運行?
的問題是,當我使用GCC 4.8,我無法看到在調試模式窗口「當地人和表達式」我的變量的值:
雖然GCC 4.7正常工作:
我試圖通過玩QtCreator選項來修復此問題,但無濟於事。
我不確定,如果這實際上與編譯器版本有關,但問題一旦用舊版本重建就會消失。
我使用gcc 4.7和gcc 4.8以及QtCreator 2.7.1。如何使用gcc 4.8使「Locals and Expressions」調試窗口運行?
的問題是,當我使用GCC 4.8,我無法看到在調試模式窗口「當地人和表達式」我的變量的值:
雖然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編譯調試信息。
''-gdwarf-3''爲gcc 5.1和gdb工作7.9.1 –
同樣的症狀可能導致從調試器是太新,而不是太舊!
在這種情況下,它不是關於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。
在我而言,這是什麼描述HostileFork:Ubuntu的13.10 + Qt Creator的2.8
這bug已被固定在Qt Creator的3,尚未公佈。
爲了解決這個問題,不需要重新編譯GDB,只需使用Qt Creator的發佈候選3.
有生成可用on Qt project website或PPA(苯丙醇胺:P12/qtcreator)與去年Git版本,但構建失敗截至今日。
ppa https://launchpad.net/~p12/+archive/qtcreator –
嘗試更新您的GDB至少7.5(當前是7.6)。 –