Qt Creator 调试器 在 Ubuntu 13.10下 局部变量和表达式(Locals) 无内容

本文介绍了在Ubuntu13.10下QtCreator版本2.7及2.8出现的Locals空白问题及其解决办法。该问题是由于QtCreator使用的GDB版本与Python3版本不兼容造成的。文章提供了详细的解决方案,包括构建基于Python2的GDB并配置QtCreator以使用新GDB。
部署运行你感兴趣的模型镜像

今天调试的时候出现了这个问题,搜了一下这篇文章说可以解决这个问题,所以转了过来。

http://www.cnblogs.com/daizhe11/p/3387496.html原文链接。

英文原文要比cnblogs里面多了很多东西,我加了进来,如果还有问题建议去看英文的。

------------------------********************************-------------------

此篇算是一个翻译,万一有国内同样的小白遇到同样问题,方便参考。

原文http://hostilefork.com/2013/10/20/qtcreator-debugger-no-locals-ubuntu/

此bug在Ubuntu 13.10下,Qt Creator的2.7, 2.8版本均存在。简单说,此非gdb问题,而是python版本的不一致导致。

Ubuntu13.10提供的gdb是用python3编译的,而Qt Creator并未为python3做出适配,于是就有了Locals空白的bug。

可以以如下方式验证:

终端,运行gdb, 键入如下:

(gdb) python print sys.version

若是显示 “invalid syntax” error,说明此gdb用的是python3,python3在print中是需要括号的,改为如下:

(gdb) python print (sys.version)

如果得到的是3.x.x,就正对了。Qt Creator显然还没打算支持3.x.x版本。

 解决方法:

自行构建一个基于Python2的GDB

步骤如下:

sudo apt-get install ncurses-dev
sudo apt-get install python-dev
(查看堆栈可能也会有问题,你可能需要通过apt-get install source gdb来更改source.如果你想尝试这个方法,你需要下载下面的两个:sudo apt-get install dpkg-devsudo apt-get install texinfo 
然后设置环境变量MAKEINFO,export MAKEINFO=makeinfo.)

到GDB官网ftp://sourceware.org/pub/gdb/releases/下载源码包,当前最新版 gdb-7.6.1.tar.gz,

解压到用户主目录,cd到此目录下,

./configure –prefix /usr/local/gdb-python2 –with-python
(如果你是通过apt-get获得的源码,那么你输入./configure -with-separate-debug-dir=/usr/lib/debug –prefix /usr/local/gdb-python2)
make
sudo make install

可以运行/usr/local/gdb-python2/bin/gdb, 键入python print sys.version重新测试下版本是否回到了2.x.x。

设置Qt Creator 使用新安装的GDB

直接介绍简便方法了。

先备份文件/usr/bin/gdb,(比如mv /usr/bin/gdb /usr/bin/gdb-python3),然后

sudo ln -s /usr/local/gdb-python2/bin/gdb /usr/bin/gdb

再在Qt Creator里F5,看Locals and Expressions(局部变量和表达式)是不是有显示了。

搞定。

 

注:此bug的表现就是在整个调试过程,下面的窗体一直一片空白:

 


您可能感兴趣的与本文相关的镜像

Python3.10

Python3.10

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值