c++ - 无法在 ubuntu 12.04 的 qt Debug模式下显示变量值

标签 c++ qt debugging ubuntu gdb

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

仅对全局变量 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 并修复了它。

最佳答案

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

gdb --version

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

相同的症状可能是因为 gdb 太新而不是太旧。

关于c++ - 无法在 ubuntu 12.04 的 qt Debug模式下显示变量值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22912058/

相关文章:

c++ - 访问冲突调用非导出的 DLL 函数 C++

c# - 你能设置 VS2008 中断 try-catch 语句中的错误吗

c++ - 是否有适用于 C++ 的跨平台命令行库?

c++ - 扩展单例模式以允许多个实例

c++ - 无法在 Windows 10 下关闭 OSK.exe

javascript - QT 和 QwebKit 我可以加载 javascript 文件作为资源文件并使用它吗?

c++从函数访问父小部件

python - 使用 C++,如何在 Qt Designer 中运行 python 文件?

c++ - 我如何追溯错误

c - printf 宏导致段错误