QWebView崩溃 “Qt5WebKitd.dll!WTFCrash() 行 345 C++” 的解决方法

  今天使用 QWebView 来做个简易的浏览器,出现了几个崩溃的问题,我的 Qt 版本是最新的5.4.2,相信 5.3.2 或者更低版本也会出现这些问题。

  问题重现:

  1、QWebView::load(URL),当界面还没加载完的时候,双击此控件会出现崩溃;

  2、当 load()  过程中,界面出现垂直滚动条而又未完全加载完成的时间,使用鼠标滑轮或者直接拖动滚动条至最顶或者最底时出现崩溃(有些页面出现)。

  崩溃的堆栈如下:

 	Qt5WebKitd.dll!WTFCrash() 行 345	C++
 	Qt5WebKitd.dll!WebCore::NoExceptionAssertionChecker::~NoExceptionAssertionChecker() 行 48	C++
 	Qt5WebKitd.dll!WebCore::Range::Range(WTF::PassRefPtr<WebCore::Document> ownerDocument, WTF::PassRefPtr<WebCore::Node> startContainer, int startOffset, WTF::PassRefPtr<WebCore::Node> endContainer, int endOffset) 行 96	C++
 	Qt5WebKitd.dll!WebCore::Range::create(WTF::PassRefPtr<WebCore::Document> ownerDocument, WTF::PassRefPtr<WebCore::Node> startContainer, int startOffset, WTF::PassRefPtr<WebCore::Node> endContainer, int endOffset) 行 101	C++
 	Qt5WebKitd.dll!WebCore::SimplifiedBackwardsTextIterator::range() 行 1368	C++
 	Qt5WebKitd.dll!WebCore::previousBoundary(const WebCore::VisiblePosition & c, unsigned int (const wchar_t *, unsigned int, unsigned int, WebCore::BoundarySearchContextAvailability, bool &) * searchFunction) 行 513	C++
 	Qt5WebKitd.dll!WebCore::startOfWord(const WebCore::VisiblePosition & c, WebCore::EWordSide side) 行 639	C++
 	Qt5WebKitd.dll!WebCore::VisibleSelection::setStartAndEndFromBaseAndExtentRespectingGranularity(WebCore::TextGranularity granularity) 行 299	C++
 	Qt5WebKitd.dll!WebCore::VisibleSelection::validate(WebCore::TextGranularity granularity) 行 418	C++
 	Qt5WebKitd.dll!WebCore::VisibleSelection::expandUsingGranularity(WebCore::TextGranularity granularity) 行 198	C++
 	Qt5WebKitd.dll!WebCore::EventHandler::selectClosestWordFromHitTestResult(const WebCore::HitTestResult & result, WebCore::AppendTrailingWhitespace appendTrailingWhitespace) 行 495	C++
 	Qt5WebKitd.dll!WebCore::EventHandler::selectClosestWordFromMouseEvent(const WebCore::MouseEventWithHitTestResults & result) 行 508	C++
 	Qt5WebKitd.dll!WebCore::EventHandler::handleMousePressEventDoubleClick(const WebCore::MouseEventWithHitTestResults & event) 行 543	C++
 	Qt5WebKitd.dll!WebCore::EventHandler::handleMousePressEvent(const WebCore::MouseEventWithHitTestResults & event) 行 708	C++
 	Qt5WebKitd.dll!WebCore::EventHandler::handleMousePressEvent(const WebCore::PlatformMouseEvent & mouseEvent) 行 1636	C++
 	Qt5WebKitd.dll!QWebPageAdapter::mouseDoubleClickEvent(QMouseEvent * ev) 行 547	C++
 	Qt5WebKitWidgetsd.dll!QWebPage::event(QEvent * ev) 行 2564	C++
 	Qt5WebKitWidgetsd.dll!QWebView::mouseDoubleClickEvent(QMouseEvent * ev) 行 886	C++
 	Qt5Widgetsd.dll!QWidget::event(QEvent * event) 行 8662	C++
 	Qt5WebKitWidgetsd.dll!QWebView::event(QEvent * e) 行 734	C++
 	Qt5Widgetsd.dll!QApplicationPrivate::notify_helper(QObject * receiver, QEvent * e) 行 3720	C++
 	Qt5Widgetsd.dll!QApplication::notify(QObject * receiver, QEvent * e) 行 3280	C++
 	Qt5Cored.dll!QCoreApplication::notifyInternal(QObject * receiver, QEvent * event) 行 935	C++
>	Qt5Cored.dll!QCoreApplication::sendSpontaneousEvent(QObject * receiver, QEvent * event) 行 231	C++
 	Qt5Widgetsd.dll!QApplicationPrivate::sendMouseEvent(QWidget * receiver, QMouseEvent * event, QWidget * alienWidget, QWidget * nativeWidget, QWidget * * buttonDown, QPointer<QWidget> & lastMouseReceiver, bool spontaneous) 行 2751	C++
 	Qt5Widgetsd.dll!QWidgetWindow::handleMouseEvent(QMouseEvent * event) 行 543	C++
 	Qt5Widgetsd.dll!QWidgetWindow::event(QEvent * event) 行 211	C++
 	Qt5Widgetsd.dll!QApplicationPrivate::notify_helper(QObject * receiver, QEvent * e) 行 3720	C++
 	Qt5Widgetsd.dll!QApplication::notify(QObject * receiver, QEvent * e) 行 3164	C++
 	Qt5Cored.dll!QCoreApplication::notifyInternal(QObject * receiver, QEvent * event) 行 935	C++
 	Qt5Cored.dll!QCoreApplication::sendSpontaneousEvent(QObject * receiver, QEvent * event) 行 231	C++
 	Qt5Guid.dll!QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent * e) 行 1812	C++
 	Qt5Guid.dll!QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent * e) 行 1573	C++
 	Qt5Guid.dll!QWindowSystemInterface::sendWindowSystemEvents(QFlags<enum QEventLoop::ProcessEventsFlag> flags) 行 572	C++
 	qwindowsd.dll!QWindowsGuiEventDispatcher::sendPostedEvents() 行 82	C++
 	Qt5Cored.dll!qt_internal_proc(HWND__ * hwnd, unsigned int message, unsigned int wp, long lp) 行 414	C++
 	[外部代码]
 	[下面的框架可能不正确和/或缺失,没有为 user32.dll 加载符号]
 	Qt5Cored.dll!QEventDispatcherWin32::processEvents(QFlags<enum QEventLoop::ProcessEventsFlag> flags) 行 807	C++
 	qwindowsd.dll!QWindowsGuiEventDispatcher::processEvents(QFlags<enum QEventLoop::ProcessEventsFlag> flags) 行 73	C++
 	Qt5Cored.dll!QEventLoop::processEvents(QFlags<enum QEventLoop::ProcessEventsFlag> flags) 行 129	C++
 	Qt5Cored.dll!QEventLoop::exec(QFlags<enum QEventLoop::ProcessEventsFlag> flags) 行 204	C++
 	Qt5Cored.dll!QCoreApplication::exec() 行 1188	C++
 	Qt5Guid.dll!QGuiApplication::exec() 行 1508	C++
 	Qt5Widgetsd.dll!QApplication::exec() 行 2957	C++
 	MiniBrowser.exe!main(int argc, char * * argv) 行 39	C++
 	MiniBrowser.exe!WinMain(HINSTANCE__ * __formal, HINSTANCE__ * __formal, char * __formal, int __formal) 行 113	C++
 	[外部代码]
 	Qt5WebKitd.dll!WTFCrash() 行 345	C++
 	Qt5WebKitd.dll!WebCore::RenderLayer::updateLayerPositionsAfterScroll(WebCore::RenderGeometryMap * geometryMap, unsigned int flags) 行 812	C++
 	Qt5WebKitd.dll!WebCore::RenderLayer::updateLayerPositionsAfterScroll(WebCore::RenderGeometryMap * geometryMap, unsigned int flags) 行 816	C++
 	Qt5WebKitd.dll!WebCore::RenderLayer::updateLayerPositionsAfterScroll(WebCore::RenderGeometryMap * geometryMap, unsigned int flags) 行 816	C++
 	Qt5WebKitd.dll!WebCore::RenderLayer::updateLayerPositionsAfterScroll(WebCore::RenderGeometryMap * geometryMap, unsigned int flags) 行 816	C++
 	Qt5WebKitd.dll!WebCore::RenderLayer::updateLayerPositionsAfterScroll(WebCore::RenderGeometryMap * geometryMap, unsigned int flags) 行 816	C++
 	Qt5WebKitd.dll!WebCore::RenderLayer::updateLayerPositionsAfterScroll(WebCore::RenderGeometryMap * geometryMap, unsigned int flags) 行 816	C++
 	Qt5WebKitd.dll!WebCore::RenderLayer::updateLayerPositionsAfterDocumentScroll() 行 763	C++
 	Qt5WebKitd.dll!WebCore::FrameView::repaintFixedElementsAfterScrolling() 行 2071	C++
 	Qt5WebKitd.dll!WebCore::ScrollView::scrollTo(const WebCore::IntSize & newOffset) 行 398	C++
 	Qt5WebKitd.dll!WebCore::FrameView::scrollTo(const WebCore::IntSize & newOffset) 行 3113	C++
 	Qt5WebKitd.dll!WebCore::ScrollView::setScrollOffset(const WebCore::IntPoint & offset) 行 379	C++
 	Qt5WebKitd.dll!WebCore::ScrollableArea::scrollPositionChanged(const WebCore::IntPoint & position) 行 147	C++
 	Qt5WebKitd.dll!WebCore::ScrollableArea::setScrollOffsetFromAnimation(const WebCore::IntPoint & offset) 行 191	C++
 	Qt5WebKitd.dll!WebCore::ScrollAnimator::notifyPositionChanged(const WebCore::FloatSize & delta) 行 143	C++
 	Qt5WebKitd.dll!WebCore::ScrollAnimator::scroll(WebCore::ScrollbarOrientation orientation, WebCore::ScrollGranularity __formal, float step, float multiplier) 行 73	C++
 	Qt5WebKitd.dll!WebCore::ScrollAnimator::handleWheelEvent(const WebCore::PlatformWheelEvent & e) 行 115	C++
 	Qt5WebKitd.dll!WebCore::ScrollableArea::handleWheelEvent(const WebCore::PlatformWheelEvent & wheelEvent) 行 177	C++
 	Qt5WebKitd.dll!WebCore::FrameView::wheelEvent(const WebCore::PlatformWheelEvent & wheelEvent) 行 4188	C++
 	Qt5WebKitd.dll!WebCore::EventHandler::handleWheelEvent(const WebCore::PlatformWheelEvent & e) 行 2463	C++
 	Qt5WebKitd.dll!QWebPageAdapter::wheelEvent(QWheelEvent * ev, int wheelScrollLines) 行 616	C++
 	Qt5WebKitWidgetsd.dll!QWebPage::event(QEvent * ev) 行 2614	C++
 	Qt5WebKitWidgetsd.dll!QWebView::wheelEvent(QWheelEvent * ev) 行 922	C++
 	Qt5Widgetsd.dll!QWidget::event(QEvent * event) 行 8666	C++
 	Qt5WebKitWidgetsd.dll!QWebView::event(QEvent * e) 行 734	C++
 	Qt5Widgetsd.dll!QApplicationPrivate::notify_helper(QObject * receiver, QEvent * e) 行 3720	C++
 	Qt5Widgetsd.dll!QApplication::notify(QObject * receiver, QEvent * e) 行 3339	C++
 	Qt5Cored.dll!QCoreApplication::notifyInternal(QObject * receiver, QEvent * event) 行 935	C++
>	Qt5Cored.dll!QCoreApplication::sendSpontaneousEvent(QObject * receiver, QEvent * event) 行 231	C++
 	Qt5Widgetsd.dll!QWidgetWindow::handleWheelEvent(QWheelEvent * event) 行 715	C++
 	Qt5Widgetsd.dll!QWidgetWindow::event(QEvent * event) 行 238	C++
 	Qt5Widgetsd.dll!QApplicationPrivate::notify_helper(QObject * receiver, QEvent * e) 行 3720	C++
 	Qt5Widgetsd.dll!QApplication::notify(QObject * receiver, QEvent * e) 行 3164	C++
 	Qt5Cored.dll!QCoreApplication::notifyInternal(QObject * receiver, QEvent * event) 行 935	C++
 	Qt5Cored.dll!QCoreApplication::sendSpontaneousEvent(QObject * receiver, QEvent * event) 行 231	C++
 	Qt5Guid.dll!QGuiApplicationPrivate::processWheelEvent(QWindowSystemInterfacePrivate::WheelEvent * e) 行 1845	C++
 	Qt5Guid.dll!QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent * e) 行 1576	C++
 	Qt5Guid.dll!QWindowSystemInterface::sendWindowSystemEvents(QFlags<enum QEventLoop::ProcessEventsFlag> flags) 行 572	C++
 	qwindowsd.dll!QWindowsGuiEventDispatcher::sendPostedEvents() 行 82	C++
 	Qt5Cored.dll!qt_internal_proc(HWND__ * hwnd, unsigned int message, unsigned int wp, long lp) 行 414	C++
 	[外部代码]
 	[下面的框架可能不正确和/或缺失,没有为 user32.dll 加载符号]
 	Qt5Cored.dll!QEventDispatcherWin32::processEvents(QFlags<enum QEventLoop::ProcessEventsFlag> flags) 行 807	C++
 	qwindowsd.dll!QWindowsGuiEventDispatcher::processEvents(QFlags<enum QEventLoop::ProcessEventsFlag> flags) 行 73	C++
 	Qt5Cored.dll!QEventLoop::processEvents(QFlags<enum QEventLoop::ProcessEventsFlag> flags) 行 129	C++
 	Qt5Cored.dll!QEventLoop::exec(QFlags<enum QEventLoop::ProcessEventsFlag> flags) 行 204	C++
 	Qt5Cored.dll!QCoreApplication::exec() 行 1188	C++
 	Qt5Guid.dll!QGuiApplication::exec() 行 1508	C++
 	Qt5Widgetsd.dll!QApplication::exec() 行 2957	C++
 	MiniBrowser.exe!main(int argc, char * * argv) 行 39	C++
 	MiniBrowser.exe!WinMain(HINSTANCE__ * __formal, HINSTANCE__ * __formal, char * __formal, int __formal) 行 113	C++
 	[外部代码]

  从以上可以看到,最后崩的地方都是:Qt5WebKitd.dll!WTFCrash() 行 345

  解决方法:

  load() 之前使用 hide() 隐藏控件,当 loadFinished(bool ok) 事件触发的时候才显示出来,就不会崩溃了。

  最后,广告时间,帮朋友推广网站:无忧仓库

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-08-07 23:27:30

QWebView崩溃 “Qt5WebKitd.dll!WTFCrash() 行 345 C++” 的解决方法的相关文章

“ORA-06550: 第 1 行, 第 7 列”解决方法

将本机能正常运行的维修生产日志代码发布到公司内测环境里无法正常运行,报错如下: execute() - pls–QuartzJob.java–quartzjob 开始执行! java.sql.SQLException: ORA-06550: 第 1 行, 第 7 列: PLS-00201: identifier 'MONITORCHANGEPLS.MCP_ISCHANGE' must be declared ORA-06550: 第 1 行, 第 7 列: PL/SQL: Statement i

处理文件夹shift+鼠标右键出现的是powershell而不是命令行的问题的解决方法

如题,有时候安装一些工具的时候会需要在工具解压目录下打开命令提示符窗口键入一些固定的指令来完成安装,然后win10系统在常规的shift+鼠标右键打开的都时候发现没有命令提示符窗口,反而出现了一个powershell,然后又不想win+R打开运行输入CMD 然后通过命令切换到目标文件夹.在这个情况下可以选择如下步骤: 0x00: win+R打开运行输入regedit回车打开注册表编辑器. 0x01: 注册表路径 计算机\HKEY_CLASSES_ROOT\Directory\Background

Ubuntu命令行中文乱码的解决方法

修改/etc/dafault/locale: 修改默认的        LANG=zh_CN.UTF-8        LANGUAGE=zh_CN:zh 为:        LANG="en_US.UTF-8"        LANGUAGE="en_US:en" 存盘退出 然后: sudo reboot 再然后 env 或者 locale 查看修改后的结果 就可以了...

解决Python 字典写入文件出行首行有空格的解决方法

模拟购物车程序,判断用户薪资是否是0 如果是0就需要输入薪资,并记录到文件内. 可以预先存个字典格式的字符串,然后去读取文件的时候读到的是字字符串然后再去用eval去转换成字典. 当我们覆盖写到文件的时候就会发现首行会有空格,当我们再去读取eval的时候就会报错,那怎么样可以解决这个问题呢! import json info = { 'lisi':0, 'zhangshan':100, } f = open('json.txt','w') f.write(json.dumps(info)) {"

关于solid works中的:动态链接库(DLL)初始化例失败的解决方法

首先在本机上安装了solid works软件,打开出现这样的情况,可以尝试重新启动在打开,还是没有效果的话不要慌张,这样的小问题是可以解决的! 不管是重启还是修复等一系列解决方法都没有解决的话,不妨试试我的解决方法吧! 不敢保证每个人都可以解决类似问题,但本人就是这样解决的  好了,不废话了,看下面的解决方法吧! 1:打开i控制面板上的电源选项 2:进入到选择关闭显示器的时间,进入到以下界面中,进入后面点开更改电源高级选项 3:点开可切换动态显卡(1)中的全局设置(2)中的接通电源(3)选择卡中

安装vmware虚拟机时出现“安装程序无法继续。Microsoft Runtime DLL 安装程序未能完成安装”解决

安装VMware出现以下问题: 界面显示: 安装程序无法继续.Microsoft  Runtime DLL 安装程序未能完成安装 解决方法: 按 系统键+r 输入:%temp%  找到 以~setup 结尾的目录,打开安装即可.

开发中遇到的DLL问题思考及解决方法

最近在公司写一个外壳程序,调用DLL插件把FORM嵌入到EXE中的一个PANEL中,其中遇到了不少的问题,大部分已经解决,还有几个至今没有找到解决方法,有待研究,也希望知道解决方法的富翁共享一下研究成果. 以下列出的问题及解决方法仅针对我写的程序(DLL插件把FORM嵌入到EXE中的一个PANEL中),和自己的解决方法. 从遇到的问题看出,DELPHI封装了太多的东西,有时候直接使用API会有意想不到的效果. 经验:DLL与EXE之间的通讯应该全部使用消息. 第一个问题:Tab键和Enter键在

div css每行文字显示一半 同时文字字体重叠显示不全解决方法

CSS DIV布局中出现单行或多行文字的每行文字内容不能显示全,上下行文字有一点点重叠现象,文字字体只显示一半解决方法,在低版本IE特别明显文字字体显示不全,在谷歌浏览器等高版本IE浏览器测试还好些. 新手布局时候特别爱出现DIV盒子里文字字体显示不完整,音乐沙发甚至上下行文字有一点重叠现象. css字体文字重叠显示不完整重叠字体字体文字重叠显示不完整同时有重叠重合效果截图 在DIV+CSS布局中造成这种字体显示不全,音乐沙发显示一半同时多行文字有一点点重叠情况原因:css行高小于CSS字体大小

通过崩溃地址找错误行数之Delphi版

通过崩溃地址找错误行数之Delphi版2009-5-11 17:42:35 来源: 转载 作者:网络 访问:360 次 被顶:2 次 字号:[大 中 小]核心提示:什么是 MAP 文件?简单地讲, MAP 文件是程序的全局符号.源文件和代码行号信息的唯一的文本表示方法,它可以在任何地方.任何时候使用,不需要有额外的程序进行支持.而且,这是唯一能找出程序崩溃的地方的救星. ...DELPHI下生成MAP文件的方法:偶只知道下面两种,如果谁知道其他的方法 敬请告知 多谢 生成详细的MAP信息的方法