Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. QtWebEngine
  4. Tracking down QtWebEngine related crashes on Windows?
Qt 6.11 is out! See what's new in the release blog

Tracking down QtWebEngine related crashes on Windows?

Scheduled Pinned Locked Moved Unsolved QtWebEngine
3 Posts 3 Posters 2.7k Views 2 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • Thuan_FirelightT Offline
    Thuan_FirelightT Offline
    Thuan_Firelight
    wrote on last edited by
    #1

    Hi all,

    I am working on a Windows application that uses QtWebEngine to display a webpage and recently, on Windows, I am seeing a number of crashes in Qt. Reproducing them proven to be difficult so I was wondering if anyone has any best practices on how to go about debugging them or if anyone has seen similar crashes before. I am using Qt 5.4.1. I do maintain the webpage so both the webpage source and C++ code are accessible to me should it prove to be an issue with the webpage doing something that QtWebEngine is not able to handle.

    Below are some of the callstacks I am seeing from customer's reports:

    Qt5WebEngineCore.dll!gpu_message_loop() Line 76	C++
    Qt5WebEngineCore.dll!DelegatedFrameNode::preprocess() Line 440	C++
    Qt5Quick.dll!QSGRenderer::preprocess() Line 269	C++
    Qt5Quick.dll!QSGRenderer::renderScene(const QSGBindable & bindable) Line 189	C++
    Qt5Quick.dll!QSGRenderer::renderScene(unsigned int fboId) Line 170	C++
    Qt5WebEngineWidgets.dll!RenderWidgetHostViewQtDelegateWidget::paintGL() Line 262	C++
    Qt5Widgets.dll!QOpenGLWidgetPrivate::invokeUserPaint() Line 734	C++
    Qt5Widgets.dll!QOpenGLWidget::paintEvent(QPaintEvent * e) Line 1038	C++
    Qt5Widgets.dll!QWidget::event(QEvent * event) Line 9085	C++
    Qt5Widgets.dll!QOpenGLWidget::event(QEvent * e) Line 1177	C++
    Qt5Core.dll!QMetaObject::cast(const QObject * obj) Line 333	C++
    Qt5Core.dll!QCoreApplicationPrivate::sendThroughApplicationEventFilters(QObject * receiver, QEvent * event) Line 1012	C++
    Qt5Widgets.dll!QApplicationPrivate::notify_helper(QObject * receiver, QEvent * e) Line 3721	C++
    Qt5Core.dll!QCoreApplication::notifyInternal(QObject * receiver, QEvent * event) Line 935	C++
    Qt5Core.dll!QCoreApplication::sendSpontaneousEvent(QObject * receiver, QEvent * event) Line 231	C++
    [External Code]	
    [Frames below may be incorrect and/or missing]	
    Qt5WebEngineCore.dll!appcache::AppCacheStorageImpl::FindMainResponseTask::FindMainResponseTask(appcache::AppCacheStorageImpl * storage, const GURL & url, const GURL & preferred_manifest_url, const std::map<GURL,appcache::AppCacheGroup *,std::less<GURL>,std::allocator<std::pair<GURL const ,appcache::AppCacheGroup *> > > * groups_in_use) Line 884	C++
    
    Qt5Gui.dll!QOpenGLShaderProgram::bind() Line 987	C++
    Qt5Gui.dll!QOpenGLTextureBlitter::bind() Line 317	C++
    Qt5Gui.dll!QPlatformBackingStore::composeAndFlush(QWindow * window, const QRegion & region, const QPoint & offset, QPlatformTextureList * textures, QOpenGLContext * context, bool translucentBackground) Line 252	C++
    Qt5Widgets.dll!QWidgetBackingStore::qt_flush(QWidget * widget, const QRegion & region, QBackingStore * backingStore, QWidget * tlw, const QPoint & tlwOffset, QPlatformTextureList * widgetTextures, QWidgetBackingStore * widgetBackingStore) Line 115	C++
    Qt5Widgets.dll!QWidgetBackingStore::flush(QWidget * widget) Line 1246	C++
    Qt5Widgets.dll!QWidgetBackingStore::doSync() Line 1234	C++
    Qt5Widgets.dll!QWidgetBackingStore::sync(QWidget * exposedWidget, const QRegion & exposedRegion) Line 960	C++
    Qt5Widgets.dll!QWidgetPrivate::syncBackingStore(const QRegion & region) Line 1897	C++
    Qt5Widgets.dll!QWidgetWindow::event(QEvent * event) Line 255	C++
    Qt5Widgets.dll!QApplicationPrivate::notify_helper(QObject * receiver, QEvent * e) Line 3723	C++
    Qt5Widgets.dll!QApplication::notify(QObject * receiver, QEvent * e) Line 3685	C++
    Qt5Core.dll!QCoreApplication::notifyInternal(QObject * receiver, QEvent * event) Line 935	C++
    Qt5Gui.dll!QGuiApplicationPrivate::processExposeEvent(QWindowSystemInterfacePrivate::ExposeEvent * e) Line 2611	C++
    Qt5Gui.dll!QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent * e) Line 1676	C++
    Qt5Gui.dll!QWindowSystemInterface::sendWindowSystemEvents(QFlags<enum QEventLoop::ProcessEventsFlag> flags) Line 573	C++
    Qt5Gui.dll!QWindowSystemInterface::flushWindowSystemEvents(QFlags<enum QEventLoop::ProcessEventsFlag> flags) Line 558	C++
    qwindows.dll!QWindowsWindow::handleWmPaint(HWND__ * hwnd, unsigned int message, unsigned __int64 __formal, __int64 __formal) Line 1496	C++
    qwindows.dll!QWindowsContext::windowsProc(HWND__ * hwnd, unsigned int message, QtWindows::WindowsEventType et, unsigned __int64 wParam, __int64 lParam, __int64 * result) Line 1013	C++
    qwindows.dll!qWindowsWndProc(HWND__ * hwnd, unsigned int message, unsigned __int64 wParam, __int64 lParam) Line 1250	C++
    [External Code]	
    Qt5Core.dll!QEventDispatcherWin32::processEvents(QFlags<enum QEventLoop::ProcessEventsFlag> flags) Line 807	C++
    qwindows.dll!QWindowsGuiEventDispatcher::processEvents(QFlags<enum QEventLoop::ProcessEventsFlag> flags) Line 74	C++
    Qt5Core.dll!QEventLoop::exec(QFlags<enum QEventLoop::ProcessEventsFlag> flags) Line 203	C++
    Qt5Core.dll!QCoreApplication::exec() Line 1188	C+
    
    d3dcompiler_47.dll!CInstruction::operator new(unsigned __int64)	Unknown
    d3dcompiler_47.dll!CBaseProgram::AddInstruction(class CInstruction * *,unsigned int,unsigned int,unsigned int)	Unknown
    d3dcompiler_47.dll!CCompiler::EmitInstAll(struct ArSourceLocation const *,unsigned int,class CArgument * *,class CArgument * const *,class CArgument * const *,unsigned __int64,enum ArRangeFlags,enum ArBasicKind) Unknown
    d3dcompiler_47.dll!CCompiler::EmitAssignInsts(struct ArSourceLocation const *,unsigned int,class CArgument * *,class CArgument * *,unsigned int,class CInstruction *,unsigned int)	Unknown
    d3dcompiler_47.dll!CCompiler::EmitExpression(class CNode const *,unsigned int,class CArgument * *,unsigned int,unsigned int)	Unknown
    d3dcompiler_47.dll!CCompiler::EmitVariableInit(class ArSymbolVariable *)	Unknown
    d3dcompiler_47.dll!CCompiler::EmitSymbol(class ArSymbol *,unsigned int,class CPacker *,bool)	Unknown
    d3dcompiler_47.dll!CCompiler::EmitSymbol(class ArSymbol *,unsigned int,class CPacker *,bool)	Unknown
    d3dcompiler_47.dll!CCompiler::EmitSymbols(class ArSymbol *,unsigned int,class CPacker *,bool)	Unknown
    d3dcompiler_47.dll!CCompiler::EmitProgram(unsigned int)	Unknown
    d3dcompiler_47.dll!CCompiler::EmitAndGenerateCode(struct ArParseResult *,char const *,class ArSymbolFunction *,class CNode const *,class CNode const *,unsigned int,struct ID3D10Blob * *)	Unknown
    d3dcompiler_47.dll!CCompiler::CompileInternal(class CPreProcessor *,struct ArParseResult *,char const *,class ArSymbolFunction *,class CNode const *,class CNode const *,bool,char const *,unsigned long,unsigned int,void const *,unsigned __int64,struct ID3D10Blob * *,class CLibraryContext *,char const *,unsigned long)	Unknown
    d3dcompiler_47.dll!D3DCompileShader(void const *,unsigned __int64,char const *,struct _D3D_SHADER_MACRO const *,struct ID3DInclude *,char const *,char const *,unsigned int,unsigned int,unsigned int,void const *,unsigned __int64,struct ID3D10Blob * *,struct ID3D10Blob * *,class CLibraryContext *)	Unknown
    d3dcompiler_47.dll!D3DCompileImpl(void const *,unsigned __int64,char const *,struct _D3D_SHADER_MACRO const *,struct ID3DInclude *,char const *,char const *,unsigned int,unsigned int,unsigned int,void const *,unsigned __int64,struct ID3D10Blob * *,struct ID3D10Blob * *)	Unknown
    d3dcompiler_47.dll!D3DCompileSaveReplay(void const *,unsigned __int64,char const *,struct _D3D_SHADER_MACRO const *,struct ID3DInclude *,char const *,char const *,unsigned int,unsigned int,unsigned int,void const *,unsigned __int64,struct ID3D10Blob * *,struct ID3D10Blob * *)	Unknown
    d3dcompiler_47.dll!D3DCompile2()	Unknown
    d3dcompiler_47.dll!D3DCompile()	Unknown
    >	libGLESv2.dll!rx::HLSLCompiler::compileToBinary(gl::InfoLog & infoLog, const std::basic_string<char,std::char_traits<char>,std::allocator<char> > & hlsl, const std::basic_string<char,std::char_traits<char>,std::allocator<char> > & profile, const std::vector<rx::CompileConfig,std::allocator<rx::CompileConfig> > & configs, const _D3D_SHADER_MACRO * overrideMacros, ID3D10Blob * * outCompiledBlob, std::basic_string<char,std::char_traits<char>,std::allocator<char> > * outDebugInfo) Line 234	C++
    libGLESv2.dll!rx::Renderer9::compileToExecutable(gl::InfoLog & infoLog, const std::basic_string<char,std::char_traits<char>,std::allocator<char> > & shaderHLSL, rx::ShaderType type, const std::vector<gl::LinkedVarying,std::allocator<gl::LinkedVarying> > & transformFeedbackVaryings, bool separatedOutputBuffers, rx::D3DWorkaroundType workaround, rx::ShaderExecutable * * outExectuable) Line 2974	C++
    libGLESv2.dll!rx::ProgramD3D::getVertexExecutableForInputLayout(const gl::VertexFormat * inputLayout, rx::ShaderExecutable * * outExectuable) Line 900	C++
    libGLESv2.dll!rx::ProgramD3D::compileProgramExecutables(gl::InfoLog & infoLog, gl::Shader * fragmentShader, gl::Shader * vertexShader, int registers) Line 930	C++
    libGLESv2.dll!gl::ProgramBinary::link(const gl::Data & data, gl::InfoLog & infoLog, const gl::AttributeBindings & attributeBindings, gl::Shader * fragmentShader, gl::Shader * vertexShader, const std::vector<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > > & transformFeedbackVaryings, unsigned int transformFeedbackBufferMode) Line 549	C++
    libGLESv2.dll!gl::Program::link(const gl::Data & data) Line 256	C++
    libGLESv2.dll!gl::Context::linkProgram(unsigned int program) Line 647	C++
    libGLESv2.dll!glLinkProgram(unsigned int program) Line 3700	C++
    Qt5Gui.dll!QOpenGLShaderProgram::link() Line 930	C++
    Qt5Gui.dll!QOpenGLTextureBlitter::create() Line 259	C++
    Qt5Gui.dll!QPlatformBackingStore::composeAndFlush(QWindow * window, const QRegion & region, const QPoint & offset, QPlatformTextureList * textures, QOpenGLContext * context, bool translucentBackground) Line 250	C++
    Qt5Widgets.dll!QWidgetBackingStore::qt_flush(QWidget * widget, const QRegion & region, QBackingStore * backingStore, QWidget * tlw, const QPoint & tlwOffset, QPlatformTextureList * widgetTextures, QWidgetBackingStore * widgetBackingStore) Line 115	C++
    Qt5Widgets.dll!QWidgetBackingStore::flush(QWidget * widget) Line 1246	C++
    Qt5Widgets.dll!QWidgetBackingStore::doSync() Line 1234	C++
    Qt5Widgets.dll!QWidgetBackingStore::sync(QWidget * exposedWidget, const QRegion & exposedRegion) Line 960	C++
    Qt5Widgets.dll!QWidgetPrivate::syncBackingStore(const QRegion & region) Line 1897	C++
    Qt5Widgets.dll!QWidgetWindow::event(QEvent * event) Line 255	C++
    Qt5Widgets.dll!QApplicationPrivate::notify_helper(QObject * receiver, QEvent * e) Line 3723	C++
    Qt5Widgets.dll!QApplication::notify(QObject * receiver, QEvent * e) Line 3685	C++
    Qt5Core.dll!QCoreApplication::notifyInternal(QObject * receiver, QEvent * event) Line 935	C++
    Qt5Gui.dll!QGuiApplicationPrivate::processExposeEvent(QWindowSystemInterfacePrivate::ExposeEvent * e) Line 2611	C++
    Qt5Gui.dll!QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent * e) Line 1676	C++
    Qt5Gui.dll!QWindowSystemInterface::sendWindowSystemEvents(QFlags<enum QEventLoop::ProcessEventsFlag> flags) Line 573	C++
    Qt5Gui.dll!QWindowSystemInterface::flushWindowSystemEvents(QFlags<enum QEventLoop::ProcessEventsFlag> flags) Line 558	C++
    qwindows.dll!QWindowsWindow::handleWmPaint(HWND__ * hwnd, unsigned int message, unsigned __int64 __formal, __int64 __formal) Line 1496	C++
    qwindows.dll!QWindowsContext::windowsProc(HWND__ * hwnd, unsigned int message, QtWindows::WindowsEventType et, unsigned __int64 wParam, __int64 lParam, __int64 * result) Line 1013	C++
    qwindows.dll!qWindowsWndProc(HWND__ * hwnd, unsigned int message, unsigned __int64 wParam, __int64 lParam) Line 1250	C++
    
    1 Reply Last reply
    0
    • G Offline
      G Offline
      Good Guy
      wrote on last edited by
      #2

      WebEngine is too buggy to be useful. I don't understand what do Qt developers think; they deprecated WebKit, but they didn't create any alternative; WebEngine is not alternative, because it doesn't work 60% of times.

      1 Reply Last reply
      0
      • SGaistS Offline
        SGaistS Offline
        SGaist
        Lifetime Qt Champion
        wrote on last edited by
        #3

        Hi,

        @Thuan_Firelight I'd recommend posting that question on the QtWebEngine mailing list. You'll find there QtWebEngine developers/maintainers.

        @Good-Guy Please stop posting such useless comments, they are not useful nor helping @Thuan_Firelight. The reasons for why QtWebKit has been deprecated have already been explained. Since you're not happy with that, then you should take a look at @Konstantin-Tokarev QtWebKit reboot.

        Interested in AI ? www.idiap.ch
        Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

        1 Reply Last reply
        1

        • Login

        • Login or register to search.
        • First post
          Last post
        0
        • Categories
        • Recent
        • Tags
        • Popular
        • Users
        • Groups
        • Search
        • Get Qt Extensions
        • Unsolved