Qt Creator中designer使用QWebEngine异常排查

Qt Creator中designer使用QWebEngine异常排查

1、前提背景

最近由于版权的原因,我们采取了自编译的Qt Creator。编译完成之后启动Qt Creator刚开始一切都是很顺利。

但是在Creator中打开designer,使用QWebEngine控件就发生了异常,Qt Creator直接崩溃。

这不,小伙伴弄了一天都没有头绪。我也对这个现象很好奇,决定一探究竟。

2、QWebEngine 在desinger中异常

根据小伙伴的描述,只要使用QWebEngineView控件就会崩溃。我要复现下现场环境。直接做到他的工位上调试。

我说:“你先打开Qt Creator 跑起来。有用调试工具调试?”

小伙伴:“这怎么调试啊。直接崩了。”

我心想:“还是道行不够啊!”

一顿操作后,果然崩了。

小伙伴:“你看,直接崩了!”

准备就关闭异常对话框。

我立马说:“别动,这不是第一现场?对话框都出了”

在这里插入图片描述

我说:“点击debug,启动VS 2019调试起来”

在这里插入图片描述
在这里插入图片描述

我大致推断出,在加载icudtl.dat文件的时候。找不到这个文件。

我说:“先手动复制一个文件放到指定的目录下看看。”但是我还是挺好奇怎么在这个目录加载。

小伙伴:“果然在这个路径下复制个icudtl.dat文件就不崩了。”

但是更诡异的事情来了。

3、频繁的异常奔溃

小伙伴继续测试,就发现一个很奇怪的现象。

光标不断的被抢走,就好像中了病毒一样。

我听了之后:“心里也嘀咕,哦,这么奇怪。”

我说:“打开资源管理器看看,是不是有cpu利用率很高的程序。”

打开观察了几秒钟,就发现一个问题,有一个程序一直不断的奔溃再重启,如此反复。

在这里插入图片描述

按理说,这个WER弹框应该是可见的。和第一次奔溃一样。但是怎么一闪即逝。

先上vs2019附加调试看看,但是这个奔溃在vs里面没有捕捉到。这……让我如何是好。

小伙伴用期待的眼神看着我。

我心想:“1、先查日志文件,看看log输出。2、还是直接上Windbg试试。”

我故作镇定的说:“查日志文件,不知道日志文件在哪里。还是上大杀器吧,Windbg请出来。”

在使用windbg时,需要简单配置src目录,pdb目录,还有捕捉c++ 异常。

还有点需要注意,要使用windbg x64版本。我们编译的版本x64架构的。

.sympath+ D:\qt_creator\bin # 配置pdb文件目录
.srcpath+ D:\qt_creator #配置Qt Creator 源码目录

在需要配置下,异常捕获,注意只有在调试模式下才能配置此选项:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

小伙伴手动复制resource,还有个目录就是translations目录到Qt Creator bin目录下,在启动测试。

嗯,一切正常了。

最后我想起来之前.QtCreator目录还有icudtl.dat文件。既然resource里面存在这个文件,那么这个文件应该没有必要存在。

我让小伙伴删除了,再测试。果然又正常了。

事已至此已经完全解决了。小伙伴投以佩服的眼神。

最后说明下icudtl.dat文件作用:

icudtl.dat 是 Google Chrome 浏览器或 Chromium 浏览器中一个用于国际化的文件,它包含了 International Components for Unicode (ICU) 数据库的内容。ICU 是一个开源的、跨平台的、提供 Unicode 和全球化支持的 C/C++ 软件库,它提供了 Unicode 字符串处理、日期时间、数字格式化、消息本地化、语言环境等功能。在 Chrome 浏览器中,icudtl.dat 主要用于支持浏览器的国际化,包括界面语言、日期时间格式、货币符号等方面。

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

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

相关文章

「从零入门推荐系统」22:chatGPT、大模型在推荐系统中的应用

作者 | gongyouliu 编辑 | gongyouliu 提示:全文2.5万字,预计阅读时长2小时,可以先收藏再慢慢阅读。 我们在上一章介绍了chatGPT、大模型的基本概念、核心技术原理等基础知识,有了这些背景知识的铺垫,下面我们来介绍ch…

复现sci顶刊中的画中画(局部细节放大)

简介 小编在撰写学术论文时,为了突出所提模型的优越性,你可以通过放大图形中的局部位置来进行比较。尽管从全局来看,各个方法的拟合效果都还不错,但通过放大图中的特定区域,可以更清楚地展示所提模型相对于其他模型的…

HTML5中Canvas学习笔记:Canvas

目录 一、HTML中Canvas画图strokeStyle 和 fillStyle 的区别是什么? 二、如何设置一幅canvas图中某个颜色透明? 三、H5 canvas中strokeRect参数如果是小数,如何处理? 四、H5 Canvas中如何画圆角矩形框? 一、HTML中…

海外应用商店优化实用指南之关键词

和SEO一样,关键词是ASO中的一个重要因素。就像应用程序标题一样,在Apple App Store和Google Play中处理应用程序关键字的方式也有所不同。 关键词研究。 对于Apple,我们的所有关键词只能获得100个字符,Google Play没有特定的关键…

STL空间配置器入门

STL简介   STL(Standard Template Library,标准模板库),从根本上说,STL是一些“容器”的集合,这些“容器”有list,vector,set,map等,STL也是算法和其他一些组件的集合。 谈及组件&#xff0c…

8.5day06 框架基础--反射+注解

文章目录 反射获取类的各种信息获取类的字节码文件 注解元注解 复习redis两道算法题 摆烂了,不想学啦!!! 反射 反射主要用来做框架; 学习内容 获取类的各种信息 第一步 加载类,获取类的字节码文件 第二步 获取类的…

IDEA基础使用

IDEA基础使用 1、IDEA中显示用法和用户截图展示有调用显示无调用显示 对应方法 2、如何找出项目中所有不被调用方法截图展示对应方法 3、常用代码(Code)说明及快捷键:4、未完待续待日后更新。。。总结:欢迎指导,也祝码友们代码越来越棒,技术越…

AMEYA360:瑞萨电子MCU和MPU产品线将支持Microsoft Visual Studio Code

全球半导体解决方案供应商瑞萨电子宣布其客户现可以使用Microsoft Visual Studio Code(VS Code)开发瑞萨全系列微控制器(MCU)和微处理器(MPU)。瑞萨已为其所有嵌入式处理器开发了工具扩展,并将其…

月报总结|Moonbeam 7月份大事一览

炎炎夏日,Moonbeam于越南举办了线下交流会,在EthCC 2023和以太坊社区成员共同讨论多链应用,在Polkadot Decoded中分享了Moonbeam的与众不同之处。 Bear Necessities Hackathon也于本月圆满结束,选出了每个赛道最杰出的项目&#…

CMake:检测python解释器和python库

CMake:检测python解释器和python库 导言检测python解释器CMakeLists.txt输出附录 检测python库项目结构CMakeLists.txt相关源码附录 导言 python是一种非常流行的语言。许多项目用python编写的工具,从而将主程序和库打包在一起,或者在配置或构建过程中使…

MCU的类型和应用领域简介

MCU(Microcontroller Unit)根据存储器类型可分为无片内ROM型和带片内ROM型。无片内ROM型的芯片需要外接EPROM才能应用,而带片内ROM型则有不同的子类型,如片内EPROM型、MASK片内掩模ROM型和片内Flash型。 MCU还可以按照用途分为通…

Cesium 实战教程 - 调整 3dtiles 倾斜摄影大小

Cesium 实战教程 - 调整 3dtiles 倾斜摄影大小 核心代码完整代码在线示例 之前由于误解遇到一个特殊的需求:想要把三维球上叠加倾斜摄影进行自由放大缩小,跟随地图的缩放进行缩放。 后来经过搜索、尝试,终于实现了需求。 但是,后…

用Abp实现找回密码和密码强制过期策略

用户找回密码,确切地说是重置密码,为了保证用户账号安全,原始密码将不再以明文的方式找回,而是通过短信或者邮件的方式发送一个随机的重置校验码(带校验码的页面连接),用户点击该链接&#xff0…

SpringBoot 日志文件

一、日志的作用 日志是程序的重要组成部分,想象一下,如果程序报错了,不让你打开控制台看日志,那么你能找到报错的原因吗 答案是否定的,写程序不是买彩票,不能完全靠猜,因此日志对于我们来说&a…

C语言数组笔试题(详解)

目录 插入知识: 一.指向函数指针数组的指针 二.回调函数 什么是回调函数? 三.数组笔试题 个人名片: 🐼作者简介:一名乐于分享在学习道路上收获的大二在校生🐻‍❄个人主页:GOTXX &#x1f4…

【Apollo学习笔记】—— 相机仿真

文章目录 前言相关代码整理 测试实践文件目录包管理BUILD文件以及cyberfile.xml文件源程序BUILD运行结果其他参考CameraOutput channels启动camera驱动启动camera video compression驱动 前言 本文是对Cyber RT的学习记录,文章可能存在不严谨、不完善、有缺漏的部分&#xff0…

[迁移学习]领域泛化

一、概念 相较于领域适应,领域泛化(Domain generalization)最显著的区别在于训练过程中不能访问测试集。 领域泛化的损失函数一般可以描述为以下形式: 该式分为三项:第一项表示各训练集权重的线性组合,其中π为使该项最小的系数&a…

react工程化配置

道阻且长,行而不辍,未来可期 1.安装react yarn create react-app demo --template typescript cd demo yarn start2.配置蓝图模版 2.1安装blueprint插件 https://github.com/shredor/blueprint-templates-cli#readme yarn add blueprint-templates-c…

WAF绕过-漏洞利用篇-sql注入+文件上传-过狗

WAF绕过主要集中在信息收集,漏洞发现,漏洞利用,权限控制四个阶段。 1、什么是WAF? Web Application Firewall(web应用防火墙),一种公认的说法是“web应用防火墙通过执行一系列针对HTTP/HTTPS的安…

webpack基础知识六:说说webpack的热更新是如何做到的?原理是什么?

一、是什么 HMR全称 Hot Module Replacement,可以理解为模块热替换,指在应用程序运行过程中,替换、添加、删除模块,而无需重新刷新整个应用 例如,我们在应用运行过程中修改了某个模块,通过自动刷新会导致…