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架构的。

shell 复制代码
.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 主要用于支持浏览器的国际化,包括界面语言、日期时间格式、货币符号等方面。

相关推荐
无小道2 小时前
Qt-qrc机制简单介绍
开发语言·qt
CodeKwang3 小时前
Qt实战:简易Excel表格 | 附完整源码
qt·excel·qtabwidget·qt控件
C++ 老炮儿的技术栈5 小时前
Qt 编写 TcpClient 程序 详细步骤
c语言·开发语言·数据库·c++·qt·算法
打工哪有不疯的6 小时前
使用 MSYS2 为 Qt (MinGW 32/64位) 完美配置 OpenSSL
c++·qt
LYOBOYI1238 小时前
qtcpSocket详解
c++·qt
无小道10 小时前
Qt——网络编程
开发语言·qt
云中飞鸿10 小时前
VS编写QT程序,如何向linux中移植?
linux·开发语言·qt
草莓熊Lotso10 小时前
Qt 主窗口核心组件实战:菜单栏、工具栏、状态栏、浮动窗口全攻略
运维·开发语言·人工智能·python·qt·ui
云中飞鸿1 天前
QTCreator快捷键
qt
十五年专注C++开发1 天前
QStyleItemDelegate:自定义列表控件类神器
qt·model·view·delegate