V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
ukixiangg
V2EX  ›  程序员

崩溃于 QtWebEngine,调用栈只有 Qt 内核代码,没有个人代码

  •  
  •   ukixiangg · 2021-02-22 16:14:13 +08:00 · 1370 次点击
    这是一个创建于 1368 天前的主题,其中的信息可能已经有所发展或是发生改变。
    项目名称是 DemoA.exe 。
    项目中使用了 WebEngine 加载网页。
    下面为崩溃栈:
    [Inline Frame] Qt5WebEngineCore.dll!std::_Narrow_char_traits<char,int>::length(const char * const) Line 321 C++ Symbols loaded.
    [Inline Frame] Qt5WebEngineCore.dll!std::string::assign(const char * const) Line 2984 C++ Symbols loaded.
    [Inline Frame] Qt5WebEngineCore.dll!std::string::{ctor}(const char * const) Line 2339 C++ Symbols loaded.
    Qt5WebEngineCore.dll!gl::GLSurface::ExtensionsContain(const char * c_extensions=0x0a4cc478, const char * name=0x63daf438) Line 270 C++ Symbols loaded.
    Qt5WebEngineCore.dll!gl::GLSurfaceQt::HasEGLExtension(const char * name=0x63daf438) Line 102 C++ Symbols loaded.
    Qt5WebEngineCore.dll!gl::GLContextEGL::Initialize(gl::GLSurface * compatible_surface, const gl::GLContextAttribs & attribs={...}) Line 104 C++ Symbols loaded.
    Qt5WebEngineCore.dll!GLContextHelper::initializeContextOnBrowserThread(gl::GLContext * context=0x0a61dd30, gl::GLSurface * surface=0x0d940438, gl::GLContextAttribs attribs={...}) Line 104 C++ Symbols loaded.
    Qt5WebEngineCore.dll!GLContextHelper::qt_static_metacall(QObject * _o=0x0a117c90, QMetaObject::Call _c=InvokeMetaMethod, int _id=0, void * * _a=0x00afc900) Line 81 C++ Symbols loaded.
    Qt5Core.dll!QMetaMethod::invoke(QObject * object=0x0a117c90, Qt::ConnectionType connectionType=DirectConnection, QGenericReturnArgument returnValue={...}, QGenericArgument val0={...}, QGenericArgument val1={...}, QGenericArgument val2={...}, QGenericArgument val3={...}, QGenericArgument val4={...}, QGenericArgument val5={...}, QGenericArgument val6={...}, QGenericArgument val7={...}, QGenericArgument val8={...}, QGenericArgument val9={...}) Line 2303 C++ Symbols loaded.
    Qt5Core.dll!QMetaObject::invokeMethod(QObject * obj=0x0a117c90, const char * member=0x638d3fc4, Qt::ConnectionType type=DirectConnection, QGenericReturnArgument ret={...}, QGenericArgument val0={...}, QGenericArgument val1={...}, QGenericArgument val2={...}, QGenericArgument val3={...}, QGenericArgument val4={...}, QGenericArgument val5={...}, QGenericArgument val6={...}, QGenericArgument val7={...}, QGenericArgument val8={...}, QGenericArgument val9={...}) Line 1515 C++ Symbols loaded.
    [Inline Frame] Qt5WebEngineCore.dll!GLContextHelper::initializeContext(gl::GLContext * context=0x0a61dd30, gl::GLSurface * surface=0x0d940438, gl::GLContextAttribs attribs={...}) Line 110 C++ Symbols loaded.
    Qt5WebEngineCore.dll!gl::init::CreateGLContext(gl::GLShareGroup * share_group=0x0d93e518, gl::GLSurface * compatible_surface=0x0d940438, const gl::GLContextAttribs & attribs={...}) Line 200 C++ Symbols loaded.
    Qt5WebEngineCore.dll!gpu::GLES2CommandBufferStub::Initialize(gpu::CommandBufferStub * share_command_buffer_stub, const GPUCreateCommandBufferConfig & init_params={...}, base::UnsafeSharedMemoryRegion shared_state_shm={...}) Line 312 C++ Symbols loaded.
    Qt5WebEngineCore.dll!gpu::GpuChannel::OnCreateCommandBuffer(const GPUCreateCommandBufferConfig & init_params={...}, int route_id=4, base::UnsafeSharedMemoryRegion shared_state_shm={...}, gpu::ContextResult * result=0x00afd354, gpu::Capabilities * capabilities=0x00afd174) Line 745 C++ Symbols loaded.
    Qt5WebEngineCore.dll!base::DispatchToMethodImpl<gpu::GpuChannel *,void (__thiscall gpu::GpuChannel::*)(GPUCreateCommandBufferConfig const &,int,base::UnsafeSharedMemoryRegion,enum gpu::ContextResult *,gpu::Capabilities *),std::tuple<GPUCreateCommandBufferConfig,int,base::UnsafeSharedMemoryRegion>,std::tuple<enum gpu::ContextResult,gpu::Capabilities>,0,1,2,0,1>(gpu::GpuChannel * const & obj=0x1eee7438, void(gpu::GpuChannel::*)(const GPUCreateCommandBufferConfig &, int, base::UnsafeSharedMemoryRegion, gpu::ContextResult *, gpu::Capabilities *) method=0x61db23b5, std::tuple<GPUCreateCommandBufferConfig,int,base::UnsafeSharedMemoryRegion> && in={...}, std::tuple<enum gpu::ContextResult,gpu::Capabilities> * out=0x00afd174, std::integer_sequence<unsigned int,0,1,2> __formal={...}, std::integer_sequence<unsigned int,0,1> __formal={...}) Line 96 C++ Symbols loaded.
    [Inline Frame] Qt5WebEngineCore.dll!base::DispatchToMethod(gpu::GpuChannel * const &) Line 105 C++ Symbols loaded.
    Qt5WebEngineCore.dll!IPC::MessageT<GpuChannelMsg_CreateCommandBuffer_Meta,std::tuple<GPUCreateCommandBufferConfig,int,base::UnsafeSharedMemoryRegion>,std::tuple<enum gpu::ContextResult,gpu::Capabilities>>::Dispatch<gpu::GpuChannel,gpu::GpuChannel,void,void (__thiscall gpu::GpuChannel::*)(GPUCreateCommandBufferConfig const &,int,base::UnsafeSharedMemoryRegion,enum gpu::ContextResult *,gpu::Capabilities *)>(const IPC::Message * msg=0x1e56f078, gpu::GpuChannel * obj=0x1eee7438, gpu::GpuChannel * sender=0x1eee7438, void * __formal=0x00000000, void(gpu::GpuChannel::*)(const GPUCreateCommandBufferConfig &, int, base::UnsafeSharedMemoryRegion, gpu::ContextResult *, gpu::Capabilities *) func=0x61db23b5) Line 205 C++ Symbols loaded.
    Qt5WebEngineCore.dll!gpu::GpuChannel::OnControlMessageReceived(const IPC::Message & msg={...}) Line 567 C++ Symbols loaded.
    Qt5WebEngineCore.dll!gpu::GpuChannel::HandleMessageHelper(const IPC::Message & msg={...}) Line 620 C++ Symbols loaded.
    Qt5WebEngineCore.dll!base::internal::FunctorTraits<void (__thiscall quota_internals::QuotaInternalsProxy::*)(storage::QuotaSettings const &),void>::Invoke<void (__thiscall quota_internals::QuotaInternalsProxy::*)(storage::QuotaSettings const &),base::WeakPtr<quota_internals::QuotaInternalsProxy> const &,storage::QuotaSettings const &>(void(quota_internals::QuotaInternalsProxy::*)(const storage::QuotaSettings &) method=0x61db214b, const base::WeakPtr<quota_internals::QuotaInternalsProxy> & receiver_ptr={...}, const storage::QuotaSettings & <args_0>={...}) Line 498 C++ Symbols loaded.
    Qt5WebEngineCore.dll!base::internal::InvokeHelper<1,void>::MakeItSo<void (__thiscall quota_internals::QuotaInternalsProxy::*const &)(storage::QuotaSettings const &),base::WeakPtr<quota_internals::QuotaInternalsProxy> const &,storage::QuotaSettings const &>(void(quota_internals::QuotaInternalsProxy::*)(const storage::QuotaSettings &) & functor=0x61db214b, const base::WeakPtr<quota_internals::QuotaInternalsProxy> & weak_ptr={...}, const storage::QuotaSettings & <args_0>={...}) Line 618 C++ Symbols loaded.
    [Inline Frame] Qt5WebEngineCore.dll!base::internal::Invoker<base::internal::BindState<void (__thiscall net::MDnsClientImpl::Core::*)(std::pair<std::string,unsigned short> const &),base::WeakPtr<net::MDnsClientImpl::Core>,std::pair<std::string,unsigned short>>,void __cdecl(void)>::RunImpl(void(net::MDnsClientImpl::Core::*)(const std::pair<std::string,unsigned short> &) && bound, std::tuple<base::WeakPtr<net::MDnsClientImpl::Core>,std::pair<std::string,unsigned short>> &&) Line 672 C++ Symbols loaded.
    Qt5WebEngineCore.dll!base::internal::Invoker<base::internal::BindState<void (__thiscall net::MDnsClientImpl::Core::*)(std::pair<std::string,unsigned short> const &),base::WeakPtr<net::MDnsClientImpl::Core>,std::pair<std::string,unsigned short>>,void __cdecl(void)>::RunOnce(base::internal::BindStateBase * base=0x1e56f060) Line 640 C++ Symbols loaded.
    [Inline Frame] Qt5WebEngineCore.dll!base::OnceCallback<void __cdecl(void)>::Run() Line 98 C++ Symbols loaded.
    Qt5WebEngineCore.dll!base::TaskAnnotator::RunTask(const char * trace_event_name=0x63d2ac90, base::PendingTask * pending_task=0x08626be8) Line 142 C++ Symbols loaded.
    Qt5WebEngineCore.dll!base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoWorkImpl(base::sequence_manager::LazyNow * continuation_lazy_now=0x00afd644, bool * ran_task=0x00afd667) Line 366 C++ Symbols loaded.
    Qt5WebEngineCore.dll!base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoWork() Line 270 C++ Symbols loaded.
    [Inline Frame] Qt5WebEngineCore.dll!QtWebEngineCore::MessagePumpForUIQt::handleScheduledWork() Line 202 C++ Non-user code. Symbols loaded.
    [Inline Frame] Qt5WebEngineCore.dll!QtWebEngineCore::MessagePumpForUIQt::<lambda_b6c8be786af2f5959f95cee23156cb35>::operator()() Line 115 C++ Non-user code. Symbols loaded.
    [Inline Frame] Qt5WebEngineCore.dll!std::invoke(QtWebEngineCore::MessagePumpForUIQt::<lambda_b6c8be786af2f5959f95cee23156cb35> &) Line 1596 C++ Non-user code. Symbols loaded.
    [Inline Frame] Qt5WebEngineCore.dll!std::_Invoker_ret<void,1>::_Call(QtWebEngineCore::MessagePumpForUIQt::<lambda_b6c8be786af2f5959f95cee23156cb35> &) Line 1640 C++ Non-user code. Symbols loaded.
    Qt5WebEngineCore.dll!std::_Func_impl_no_alloc<<lambda_b6c8be786af2f5959f95cee23156cb35>,void>::_Do_call() Line 903 C++ Non-user code. Symbols loaded.
    [Inline Frame] Qt5WebEngineCore.dll!std::_Func_class<void>::operator()() Line 951 C++ Symbols loaded.
    Qt5WebEngineCore.dll!QWebEngineMessagePumpScheduler::timerEvent(QTimerEvent * ev=0x1e664660) Line 72 C++ Symbols loaded.
    Qt5Core.dll!QObject::event(QEvent * e=0x1e664660) Line 1341 C++ Symbols loaded.
    Qt5Widgets.dll!QApplicationPrivate::notify_helper(QObject * receiver=0x0a135220, QEvent * e=0x1e664660) Line 3630 C++ Symbols loaded.
    Qt5Widgets.dll!QApplication::notify(QObject * receiver=0x0a135220, QEvent * e=0x1e664660) Line 3585 C++ Symbols loaded.
    Qt5Core.dll!QCoreApplication::notifyInternal2(QObject * receiver=0x0a135220, QEvent * event=0x1e664660) Line 1063 C++ Symbols loaded.
    [Inline Frame] Qt5Core.dll!QCoreApplication::sendEvent(QObject *) Line 1458 C++ Symbols loaded.
    Qt5Core.dll!QCoreApplicationPrivate::sendPostedEvents(QObject * receiver=0x00000000, int event_type, QThreadData * data=0x00214610) Line 1817 C++ Symbols loaded.
    Qt5Core.dll!QEventDispatcherWin32::sendPostedEvents() Line 1081 C++ Symbols loaded.
    qwindows.dll!QWindowsGuiEventDispatcher::sendPostedEvents() Line 81 C++ Symbols loaded.
    Qt5Core.dll!QEventDispatcherWin32::processEvents(QFlags<enum QEventLoop::ProcessEventsFlag> flags={...}) Line 530 C++ Symbols loaded.
    qwindows.dll!QWindowsGuiEventDispatcher::processEvents(QFlags<enum QEventLoop::ProcessEventsFlag> flags={...}) Line 74 C++ Symbols loaded.
    [Inline Frame] Qt5Core.dll!QEventLoop::processEvents(QFlags<enum QEventLoop::ProcessEventsFlag>) Line 139 C++ Symbols loaded.
    Qt5Core.dll!QEventLoop::exec(QFlags<enum QEventLoop::ProcessEventsFlag> flags={...}) Line 232 C++ Symbols loaded.
    Qt5Core.dll!QCoreApplication::exec() Line 1372 C++ Symbols loaded.
    DemoA.exe!main(int argc=12, char * * argv=0x03720f90) Line 164 C++ Symbols loaded.
    DemoA.exe!WinMain(HINSTANCE__ * __formal=0x00bc0000, HINSTANCE__ * __formal=0x00000000, char * __formal=0x00183cd8, int __formal=10) Line 98 C++ Symbols loaded.
    > [Inline Frame] XesStudent.exe!invoke_main() Line 102 C++ Non-user code. Symbols loaded.
    DemoA.exe!__scrt_common_main_seh() Line 288 C++ Non-user code. Symbols loaded.
    kernel32.dll!@BaseThreadInitThunk@12 () Unknown Non-user code. Symbols loaded.
    ntdll.dll!__RtlUserThreadStart() Unknown Non-user code. Symbols loaded.
    ntdll.dll!__RtlUserThreadStart@8 () Unknown Non-user code. Symbols loaded.
    第 1 条附言  ·  2021-02-22 18:51:53 +08:00
    崩溃报错:
    Unhandled exception at 0x61664951 (Qt5WebEngineCore.dll) in DemoA.exe.5572.dmp: 0xC0000005: Access violation reading location 0x0A4CC478.
    7 条回复    2021-02-23 13:14:54 +08:00
    ukixiangg
        1
    ukixiangg  
    OP
       2021-02-22 16:42:53 +08:00
    崩溃报错:
    Unhandled exception at 0x61664951 (Qt5WebEngineCore.dll) in DemoA.exe.5572.dmp: 0xC0000005: Access violation reading location 0x0A4CC478.
    ysc3839
        2
    ysc3839  
       2021-02-22 16:45:16 +08:00 via Android
    把 Inline Frame 展开看看吧,另外建议截图,或者把 dump 文件发出来。
    flyhelan
        3
    flyhelan  
       2021-02-22 18:23:37 +08:00
    这代码看着头大
    ukixiangg
        4
    ukixiangg  
    OP
       2021-02-22 18:53:44 +08:00
    想把调用栈删一部分,但是没找到删除按钮
    nicevar
        5
    nicevar  
       2021-02-22 19:00:28 +08:00
    看不出什么,Qt 版本是多少?可以换个系统平台测试一下,或者换个 Qt 版本
    jones2000
        6
    jones2000  
       2021-02-23 02:15:29 +08:00
    如果页面, 在页面 js 里面加日志输出, 奔溃的时候就看最后的日志执行到那个 js 上, 大致就知道是哪块 js 引起的。
    ukixiangg
        7
    ukixiangg  
    OP
       2021-02-23 13:14:54 +08:00
    Qt 版本 5.15.1 ;
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5323 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 52ms · UTC 07:41 · PVG 15:41 · LAX 23:41 · JFK 02:41
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.