2013-05-17 26 views
16

我使用gcc 4.7和gcc 4.8以及QtCreator 2.7.1。如何使用gcc 4.8使「Locals and Expressions」調試窗口運行?

的問題是,當我使用GCC 4.8,我無法看到在調試模式窗口「當地人和表達式」我的變量的值:

enter image description here

雖然GCC 4.7正常工作:

enter image description here

我試圖通過玩QtCreator選項來修復此問題,但無濟於事。

我不確定,如果這實際上與編譯器版本有關,但問題一旦用舊版本重建就會消失。

+2

嘗試更新您的GDB至少7.5(當前是7.6)。 –

回答

15

原因可能是gcc 4.8默認使用較新的格式來存儲調試信息(http://gcc.gnu.org/gcc-4.8/changes.html)。如果您使用的GDB版本小於7.5(請參閱gdb --version),則需要提供-gdwarf-3參數以使用gcc 4.8編譯調試信息。

+1

''-gdwarf-3''爲gcc 5.1和gdb工作7.9.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

+1

非常感謝,那是我的問題! –

+0

救了我一天。謝謝。 –

+0

哦,我的天啊,你是救命恩人! – Doodad

2

在我而言,這是什麼描述HostileFork:Ubuntu的13.10 + Qt Creator的2.8

bug已被固定在Qt Creator的3,尚未公佈。

爲了解決這個問題,不需要重新編譯GDB,只需使用Qt Creator的發佈候選3.

有生成可用on Qt project website或PPA(苯丙醇胺:P12/qtcreator)與去年Git版本,但構建失敗截至今日。

+0

ppa https://launchpad.net/~p12/+archive/qtcreator –