QtCreator调试时无法显示std::string的内容

在银河麒麟V10或Ubuntu下使用QtCreator调试代码时,std::string类型变量在大多数情况下不显示实际内容,而是显示"<无法访问>"字样,鼠标点击进去也是看不见任何有用信息,这样非常影响调试效率,为此,提供以下解决方法:

注:银河麒麟V10是一款基于Ubuntu的Linux操作系统。

1、找到Qt安装路径下的stdtypes.py文件,例如:
/home/admin/Qt5.12.4/Tools/QtCreator/share/qtcreator/debugger/stdtypes.py
在这里插入图片描述

注:忘记Qt装哪了,找不到没关系,桌面右键菜单里打开终端(快捷键Ctrl+Alt+T,或者Win+T),输入find -name "stdtypes.py",该命令用来搜索文件。输入pwd,该命令用来显示当前工作目录的绝对路径。二者组合形成文件所在的绝对路径/home/admin/Qt5.12.4/Tools/QtCreator/share/qtcreator/debugger/stdtypes.py
在这里插入图片描述
2、修改stdtypes.py文件内容
打开该文件,找到

def qdumpHelper_std__string(d, value, charType, format):

修改1:将

(size, alloc, refcount) = d.split("ppp", data - 3 * d.ptrSize())

修改为

(size, alloc, refcount) = d.split("ppp", value.address() + d.ptrSize())

修改2:将

d.check(0 <= size and size <= alloc and alloc <= 100*1000*1000)

修改为

if size > 4002:size = 4002

2处内容全部修改后,该段内容显示如下:

def qdumpHelper_std__string(d, value, charType, format):if d.isQnxTarget():qdumpHelper__std__string__QNX(d, value, charType, format)returnif d.isMsvcTarget():qdumpHelper__std__string__MSVC(d, value, charType, format)returndata = value.extractPointer()# We can't lookup the std::string::_Rep type without crashing LLDB,# so hard-code assumption on member position# struct { size_type _M_length, size_type _M_capacity, int _M_refcount; }# 注释原内容 (size, alloc, refcount) = d.split("ppp", data - 3 * d.ptrSize())(size, alloc, refcount) = d.split("ppp", value.address() + d.ptrSize())refcount = refcount & 0xffffffffd.check(refcount >= -1) # Can be -1 according to docs.# 注释原内容 d.check(0 <= size and size <= alloc and alloc <= 100*1000*1000)if size > 4002:size = 4002d.putCharArrayHelper(data, size, charType, format)

3、重启系统后,打开QtCreator调试运行
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/573577.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

android 11 SystemUI 状态栏打开之后的界面层级关系说明之一

比如WiFi 图标的父layout为&#xff1a; Class Name: ButtonRelativeLayout Class Name: QSTileView Class Name: TilePage Class Name: PagedTileLayout Class Name: QSPanel Class Name: NonInterceptingScrollView Class Name: QSContainerImpl Class Name: FrameLayout Cl…

软件开发服务合同套用模板(WORD原件)

一、合作方式 二、合同标的 三、开发进度及软件成果交付 四、开发费用 五、付款结算方式 六、知识产权条款 七、双方的权利和义务 八、验收 九、售后服务支持 十、培训 十一、保密责任 十二、不可抗力 十三、争议的解决 十四、其它事项 软件全套资料包领取&#xff1a;软件开发…

手机termux免root安装kali:一步到位+图形界面_termux安装kali-

1.工具 安卓包括鸿蒙手机、WiFi、充足的电量、脑子 2.浏览器搜索termuxvnc viewer下载安装。 3.对抗华为纯净模式需要一些操作先断网弹窗提示先不开等到继续安装的时候连上网智能检测过后就可以了 termux正常版本可以通过智能监测失败了就说明安装包是盗版 4.以后出现类似…

区块链技术与大数据结合的商业模式探索

hello宝子们...我们是艾斯视觉擅长ui设计和前端开发10年经验&#xff01;希望我的分享能帮助到您&#xff01;如需帮助可以评论关注私信我们一起探讨&#xff01;致敬感谢感恩&#xff01; 随着区块链技术和大数据技术的不断发展&#xff0c;两者的结合为企业带来了新的商业模式…

聊聊多模态大模型处理的思考

多模态&#xff1a;文本、音频、视频、图像等多形态的展现形式。目前部门内业务要求领域大模型需要是多模态——支持音频/文本。从个人思考的角度来审视下&#xff0c;审视下多模态大模型的实现方式。首先就要区分输入与输出&#xff0c;即输入的模态与输出的模态。从目前来看&…

HBase的Python API(happybase)操作

一、Windows下安装Python库&#xff1a;happybase pip install happybase -i https://pypi.tuna.tsinghua.edu.cn/simple 二、 开启HBase的Thrift服务 想要使用Python API连接HBase&#xff0c;需要开启HBase的Thrift服务。所以&#xff0c;在Linux服务器上&#xff0c;执行如…

2024最新版克魔助手抓包教程(9) - 克魔助手 IOS 数据抓包

引言 在移动应用程序的开发中&#xff0c;了解应用程序的网络通信是至关重要的。数据抓包是一种很好的方法&#xff0c;可以让我们分析应用程序的网络请求和响应&#xff0c;了解应用程序的网络操作情况。克魔助手是一款非常强大的抓包工具&#xff0c;可以帮助我们在 Android …

前端Webpack5高级进阶课程

课程介绍 本套视频教程主要内容包含React/Vue最新版本脚手架分析、基于Webpack5编写自己的loader和plugin等&#xff0c;让你开发时选择更多样&#xff0c;最后&#xff0c;用不到一百行的代码实现Webpack打包。通过本套视频教程的学习&#xff0c;可以帮你彻底打通Webpack的任…

分类预测 | Matlab实现CNN-LSTM-Mutilhead-Attention卷积神经网络-长短期记忆网络融合多头注意力机制多特征分类预测

分类预测 | Matlab实现CNN-LSTM-Mutilhead-Attention卷积神经网络-长短期记忆网络融合多头注意力机制多特征分类预测 目录 分类预测 | Matlab实现CNN-LSTM-Mutilhead-Attention卷积神经网络-长短期记忆网络融合多头注意力机制多特征分类预测分类效果基本介绍模型描述程序设计参…

Python 从0开始 一步步基于Django创建项目(13)将数据关联到用户

在city_infos应用程序中&#xff0c;每个城市信息条目是关联到城市的&#xff0c;所以只需要将城市条目关联到用户即可。 将数据关联到用户&#xff0c;就是把‘顶层’数据关联到用户。 设计思路&#xff1a; 1、修改顶层数据模型&#xff0c;向其中添加‘用户’属性 2、根…

开发面试相关的编程题

1,【求数字1出现的次数】 问题描述: 输入一个整数n&#xff0c;求从1到n这n个整数(十进制)中1出现的次数。要求空间复杂度为O(n)。 输入描述: 1 输入的数据包含一行&#xff1a; 整数N&#xff0c;要求N>1 输出描述: 1 输出一个整数&#xff0c;表示从1到N这N个…

Django安装及第一个项目

1、安装python C:\Users\leell>py --version Python 3.10.6 可以看出我的环境python的版本3.10.6&#xff0c;比较新 2、 Python 虚拟环境创建 2.1 官网教程 目前&#xff0c;有两种常用工具可用于创建 Python 虚拟环境&#xff1a; venv 在 Python 3.3 及更高版本中默…