在ubuntu 12.04上无法在qt调试模式下显示变量值

时间:2014-04-07 12:10:53

标签: c++ qt debugging ubuntu gdb

我在ubuntu 12.04上安装了qt 5.2。但是当我在调试模式下运行它时,变量不会出现在locals和expressions窗口中。我尝试右键单击变量并单击添加表达式计算器,但没有任何反应。我也尝试将它拖动到本地和表达式窗口,但它的值不是它放在值列中,而类型列是空的。

仅对全局变量qt显示正确的值。

我在13.10 ubuntu上尝试了相同版本的qt,它运行正常。谁能告诉我应该怎么做才能解决这个问题?

编辑:

这是编译输出

17:10:23: Running steps for project test1...

17:10:23: Configuration unchanged, skipping qmake step.

17:10:23: Starting: "/usr/bin/make" 

g++ -c -pipe -g -std=c++0x -Wall -W -D_REENTRANT -fPIE -DQT_QML_DEBUG -DQT_DECLARATIVE_DEBUG -DQT_CORE_LIB -I/opt/Qt5.2.0/5.2.0/gcc/mkspecs/linux-g++ -I../test1 -I/opt/Qt5.2.0/5.2.0/gcc/include -I/opt/Qt5.2.0/5.2.0/gcc/include/QtCore -I. -I. -o main.o ../test1/main.cpp

g++ -Wl,-rpath,/opt/Qt5.2.0/5.2.0/gcc -Wl,-rpath,/opt/Qt5.2.0/5.2.0/gcc/lib -o test1 main.o   -L/opt/Qt5.2.0/5.2.0/gcc/lib -lQt5Core -lpthread 
{ test -n "" && DESTDIR="" || DESTDIR=.; } && test $(gdb --version | sed -e 's,[^0-9][^0-9]*\([0-9]\)\.\([0-9]\).*,\1\2,;q') -gt 72 && gdb --nx --batch --quiet -ex 'set confirm off' -ex "save gdb-index $DESTDIR" -ex quit 'test1' && test -f test1.gdb-index && objcopy --add-section '.gdb_index=test1.gdb-index' --set-section-flags '.gdb_index=readonly' 'test1' 'test1' && rm -f test1.gdb-index || true

17:10:24: The process "/usr/bin/make" exited normally.

17:10:24: Elapsed time: 00:01.

编辑:

对于任何面临同样问题的人,就像Nejat说我安装了修复它的gdb 7.6。

1 个答案:

答案 0 :(得分:3)

问题是gcc 4.8使用更新的格式来存储调试信息,而你使用的gdb版本低于7.5。您可以通过以下方式检查您的gdb版本:

gdb --version

您应该将gdb升级到最新版本。

同样的症状可能是因为gdb过于新,而不是太旧。

相关问题