我最近收到了Crash Report Tools的崩溃报告.这个崩溃是指UIWebView WebCore崩溃,我的应用程序只使用UIWebView,而我最近无法切换到WKWebview.下面是崩溃报告,我无法重现它.它发生在iPhone 6,7,8,X设备上,但只使用iOS 11.3版本(15E216).
这次崩溃有3个不同的崩溃堆栈.任何意见将是有益的.
类型1:
- 0 WebCore WebCore::TimerBase::~TimerBase() + 120
- 1 WebCore WebCore::TimerBase::~TimerBase() + 40
- 2 WebCore WebCore::ImageLoader::~ImageLoader() + 2076
- 3 WebCore WebCore::HTMLImageElement::~HTMLImageElement() + 224
- 4 WebCore WebCore::HTMLImageElement::~HTMLImageElement() + 12
- 5 JavaScriptCore void JSC::MarkedBlock::Handle::specializedSweep<true,(JSC::MarkedBlock::Handle::EmptyMode)1,(JSC::MarkedBlock::Handle::SweepMode)1,(JSC::MarkedBlock::Handle::SweepDestructionMode)1,(JSC::MarkedBlock::Handle::ScribbleMode)0,(JSC::MarkedBlock::Handle::NewlyAllocatedMode)1,(JSC::MarkedBlock::Handle::MarksMode)1,JSC::JSDestructibleObjectDestroyFunc>(JSC::FreeList*,JSC::MarkedBlock::Handle::EmptyMode,JSC::MarkedBlock::Handle::SweepMode,JSC::MarkedBlock::Handle::SweepDestructionMode,JSC::MarkedBlock::Handle::ScribbleMode,JSC::MarkedBlock::Handle::NewlyAllocatedMode,JSC::MarkedBlock::Handle::MarksMode,JSC::JSDestructibleObjectDestroyFunc const&) + 212
第2类:
- 0 WebCore WebCore::TimerBase::~TimerBase() + 120
- 1 WebCore WebCore::TimerBase::~TimerBase() + 40
- 2 WebCore WebCore::XMLHttpRequest::~XMLHttpRequest() + 116
- 3 WebCore WebCore::XMLHttpRequest::~XMLHttpRequest() + 12
- 4 JavaScriptCore void JSC::MarkedBlock::Handle::specializedSweep<true,JSC::JSDestructibleObjectDestroyFunc const&) + 212
- 5 JavaScriptCore void JSC::MarkedBlock::Handle::finishSweepKnowingHeapCellType<JSC::JSDestructibleObjectDestroyFunc>(JSC::FreeList*,JSC::JSDestructibleObjectDestroyFunc const&)::'lambda'()::operator()() const + 408
类型3:
- 0 WebCore WebCore::TimerBase::~TimerBase() + 120
- 1 WebCore WebCore::TimerBase::~TimerBase() + 40
- 2 WebCore WebCore::MediaElementSession::~MediaElementSession() + 96
- 3 WebCore WebCore::HTMLMediaElement::~HTMLMediaElement() + 1340
- 4 WebCore WebCore::HTMLVideoElement::~HTMLVideoElement() + 176
- 5 JavaScriptCore void JSC::MarkedBlock::Handle::specializedSweep<true,JSC::JSDestructibleObjectDestroyFunc const&) + 212
==
完全崩溃堆栈:
类型1:
- #0 Thread
- SIGTRAP
- 0 WebCore WebCore::TimerBase::~TimerBase() + 120
- 1 WebCore WebCore::TimerBase::~TimerBase() + 40
- 2 WebCore WebCore::ImageLoader::~ImageLoader() + 2076
- 3 WebCore WebCore::HTMLImageElement::~HTMLImageElement() + 224
- 4 WebCore WebCore::HTMLImageElement::~HTMLImageElement() + 12
- 5 JavaScriptCore void JSC::MarkedBlock::Handle::specializedSweep<true,JSC::JSDestructibleObjectDestroyFunc const&) + 212
- 6 JavaScriptCore void JSC::MarkedBlock::Handle::finishSweepKnowingHeapCellType<JSC::JSDestructibleObjectDestroyFunc>(JSC::FreeList*,JSC::JSDestructibleObjectDestroyFunc const&)::'lambda'()::operator()() const + 408
- 7 JavaScriptCore void JSC::MarkedBlock::Handle::finishSweepKnowingHeapCellType<JSC::JSDestructibleObjectDestroyFunc>(JSC::FreeList*,JSC::JSDestructibleObjectDestroyFunc const&) + 320
- 8 JavaScriptCore JSC::JSDestructibleObjectHeapCellType::finishSweep(JSC::MarkedBlock::Handle&,JSC::FreeList*) + 32
- 9 JavaScriptCore JSC::MarkedBlock::Handle::sweep(JSC::FreeList*) + 372
- 10 JavaScriptCore JSC::LocalAllocator::tryAllocateIn(JSC::MarkedBlock::Handle*) + 40
- 11 JavaScriptCore JSC::LocalAllocator::tryAllocateWithoutCollecting() + 48
- 12 JavaScriptCore JSC::LocalAllocator::allocateSlowCase(JSC::GCDeferralContext*,JSC::AllocationFailureMode) + 292
- 13 JavaScriptCore JSC::CompleteSubspace::allocateNonVirtual(JSC::VM&,unsigned long,JSC::GCDeferralContext*,JSC::AllocationFailureMode) + 216
- 14 WebCore std::__1::enable_if<std::is_same<WebCore::GainNode,WebCore::GainNode>::value,WebCore::JSDOMWrapperConverterTraits<WebCore::GainNode>::WrapperClass*>::type WebCore::createWrapper<WebCore::GainNode,WebCore::GainNode>(WebCore::JSDOMGlobalObject*,***::Ref<WebCore::GainNode,***::DumbPtrTraits<WebCore::GainNode> >&&) + 220
- 15 WebCore WebCore::toJS(JSC::ExecState*,WebCore::JSDOMGlobalObject*,WebCore::GainNode&) + 136
- 16 WebCore WebCore::jsAudioContextPrototypeFunctionCreateGain(JSC::ExecState*) + 264
- 17 JavaScriptCore _llint_entry + 31860
- 18 JavaScriptCore _llint_entry + 29020
- 19 JavaScriptCore _llint_entry + 30040
- 20 JavaScriptCore _llint_entry + 29020
- 21 JavaScriptCore _llint_entry + 29020
- 22 JavaScriptCore _llint_entry + 29020
- 23 JavaScriptCore _llint_entry + 29020
- 24 JavaScriptCore _llint_entry + 29020
- 25 JavaScriptCore _llint_entry + 29020
- 26 JavaScriptCore _llint_entry + 29020
- 27 JavaScriptCore _llint_entry + 29020
- 28 JavaScriptCore _llint_entry + 29020
- 29 JavaScriptCore _llint_entry + 29020
- 30 JavaScriptCore _llint_entry + 29020
- 31 JavaScriptCore _llint_entry + 29020
- 32 JavaScriptCore _llint_entry + 29020
- 33 JavaScriptCore _llint_entry + 29020
- 34 JavaScriptCore _llint_entry + 29020
- 35 JavaScriptCore _llint_entry + 29020
- 36 JavaScriptCore _vmEntryToJavaScript + 272
- 37 JavaScriptCore JSC::JITCode::execute(JSC::VM*,JSC::ProtoCallFrame*) + 184
- 38 JavaScriptCore JSC::Interpreter::executeCall(JSC::ExecState*,JSC::JSObject*,JSC::CallType,JSC::CallData const&,JSC::JSValue,JSC::ArgList const&) + 464
- 39 JavaScriptCore JSC::profiledCall(JSC::ExecState*,JSC::ProfilingReason,JSC::ArgList const&,***::NakedPtr<JSC::Exception>&) + 180
- 40 WebCore WebCore::JSEventListener::handleEvent(WebCore::ScriptExecutionContext&,WebCore::Event&) + 1176
- 41 WebCore WebCore::EventTarget::fireEventListeners(WebCore::Event&,***::Vector<***::RefPtr<WebCore::RegisteredEventListener,***::DumbPtrTraits<WebCore::RegisteredEventListener> >,1ul,***::CrashOnOverflow,16ul,***::FastMalloc>) + 760
- 42 WebCore WebCore::EventTarget::fireEventListeners(WebCore::Event&) + 596
- 43 WebCore WebCore::EventTarget::dispatchEvent(WebCore::Event&) + 116
- 44 WebCore WebCore::WebSocket::didReceiveBinaryData(***::Vector<unsigned char,0ul,***::FastMalloc>&&) + 236
- 45 WebCore WebCore::WebSocketChannel::processFrame() + 2912
- 46 WebCore WebCore::WebSocketChannel::processBuffer() + 112
- 47 WebCore WebCore::WebSocketChannel::didReceiveSocketStreamData(WebCore::SocketStreamHandle&,char const*,unsigned long) + 112
- 48 WebCore WebCore::SocketStreamHandleImpl::readStreamCallback(unsigned long) + 544
- 49 CoreFoundation __signalEventSync + 212
- 50 CoreFoundation __cfstream_solo_signalEventSync + 260
- 51 CoreFoundation __CFStreamSignalEvent + 548
- 52 CFNetwork SocketStream::dispatchSignalFromSocketCallbackUnlocked(SocketStreamSignalHolder*) + 64
- 53 CFNetwork SocketStream::socketCallback(__CFSocket*,__CFData const*,void const*) + 148
- 54 CFNetwork SocketStream::_SocketCallBack_stream(__CFSocket*,void const*,void*) + 88
- 55 CoreFoundation ___CFSocketPerformV0 + 1352
- 56 CoreFoundation ___CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 24
- 57 CoreFoundation ___CFRunLoopDoSources0 + 276
- 58 CoreFoundation ___CFRunLoopRun + 1204
- 59 CoreFoundation CFRunLoopRunSpecific + 552
- 60 GraphicsServices GSEventRunModal + 100
- 61 UIKit UIApplicationMain + 236
- 62 x5gamehelper main + 88
- 63 libdyld.dylib _start + 4
第2类:
- #0 Thread
- SIGTRAP
- 0 WebCore WebCore::TimerBase::~TimerBase() + 120
- 1 WebCore WebCore::TimerBase::~TimerBase() + 40
- 2 WebCore WebCore::XMLHttpRequest::~XMLHttpRequest() + 116
- 3 WebCore WebCore::XMLHttpRequest::~XMLHttpRequest() + 12
- 4 JavaScriptCore void JSC::MarkedBlock::Handle::specializedSweep<true,JSC::JSDestructibleObjectDestroyFunc const&)::'lambda'()::operator()() const + 408
- 6 JavaScriptCore void JSC::MarkedBlock::Handle::finishSweepKnowingHeapCellType<JSC::JSDestructibleObjectDestroyFunc>(JSC::FreeList*,JSC::JSDestructibleObjectDestroyFunc const&) + 320
- 7 JavaScriptCore JSC::JSDestructibleObjectHeapCellType::finishSweep(JSC::MarkedBlock::Handle&,JSC::FreeList*) + 32
- 8 JavaScriptCore JSC::MarkedBlock::Handle::sweep(JSC::FreeList*) + 372
- 9 JavaScriptCore JSC::LocalAllocator::tryAllocateIn(JSC::MarkedBlock::Handle*) + 40
- 10 JavaScriptCore JSC::LocalAllocator::tryAllocateWithoutCollecting() + 48
- 11 JavaScriptCore JSC::LocalAllocator::allocateSlowCase(JSC::GCDeferralContext*,JSC::AllocationFailureMode) + 292
- 12 JavaScriptCore JSC::CompleteSubspace::allocateNonVirtual(JSC::VM&,JSC::AllocationFailureMode) + 216
- 13 WebCore std::__1::enable_if<std::is_same<WebCore::GainNode,***::DumbPtrTraits<WebCore::GainNode> >&&) + 220
- 14 WebCore WebCore::toJS(JSC::ExecState*,WebCore::GainNode&) + 136
- 15 WebCore WebCore::jsAudioContextPrototypeFunctionCreateGain(JSC::ExecState*) + 264
- 16 JavaScriptCore _llint_entry + 31860
- 17 JavaScriptCore _llint_entry + 29020
- 18 JavaScriptCore _llint_entry + 30040
- 19 JavaScriptCore _llint_entry + 29020
- 20 JavaScriptCore _llint_entry + 29020
- 21 JavaScriptCore _llint_entry + 29020
- 22 JavaScriptCore _llint_entry + 29020
- 23 JavaScriptCore _llint_entry + 29020
- 24 JavaScriptCore _llint_entry + 29020
- 25 JavaScriptCore _llint_entry + 29020
- 26 JavaScriptCore _llint_entry + 29020
- 27 JavaScriptCore _llint_entry + 29020
- 28 JavaScriptCore _llint_entry + 29020
- 29 JavaScriptCore _llint_entry + 28904
- 30 JavaScriptCore _llint_entry + 28904
- 31 JavaScriptCore _llint_entry + 28904
- 32 JavaScriptCore _llint_entry + 29020
- 33 JavaScriptCore _llint_entry + 29020
- 34 JavaScriptCore _llint_entry + 28904
- 35 JavaScriptCore _llint_entry + 29020
- 36 JavaScriptCore _llint_entry + 29020
- 37 JavaScriptCore _vmEntryToJavaScript + 272
- 38 JavaScriptCore JSC::JITCode::execute(JSC::VM*,JSC::ProtoCallFrame*) + 184
- 39 JavaScriptCore JSC::Interpreter::executeCall(JSC::ExecState*,JSC::ArgList const&) + 464
- 40 JavaScriptCore JSC::profiledCall(JSC::ExecState*,***::NakedPtr<JSC::Exception>&) + 180
- 41 WebCore WebCore::JSEventListener::handleEvent(WebCore::ScriptExecutionContext&,WebCore::Event&) + 1176
- 42 WebCore WebCore::EventTarget::fireEventListeners(WebCore::Event&,***::FastMalloc>) + 760
- 43 WebCore WebCore::EventTarget::fireEventListeners(WebCore::Event&) + 596
- 44 WebCore WebCore::EventTarget::dispatchEvent(WebCore::Event&) + 116
- 45 WebCore WebCore::WebSocket::didReceiveBinaryData(***::Vector<unsigned char,***::FastMalloc>&&) + 236
- 46 WebCore WebCore::WebSocketChannel::processFrame() + 2912
- 47 WebCore WebCore::WebSocketChannel::processBuffer() + 112
- 48 WebCore WebCore::WebSocketChannel::didReceiveSocketStreamData(WebCore::SocketStreamHandle&,unsigned long) + 112
- 49 WebCore WebCore::SocketStreamHandleImpl::readStreamCallback(unsigned long) + 544
- 50 CoreFoundation __signalEventSync + 212
- 51 CoreFoundation __cfstream_solo_signalEventSync + 260
- 52 CoreFoundation __CFStreamSignalEvent + 548
- 53 CFNetwork SocketStream::dispatchSignalFromSocketCallbackUnlocked(SocketStreamSignalHolder*) + 64
- 54 CFNetwork SocketStream::socketCallback(__CFSocket*,void const*) + 148
- 55 CFNetwork SocketStream::_SocketCallBack_stream(__CFSocket*,void*) + 88
- 56 CoreFoundation ___CFSocketPerformV0 + 1352
- 57 CoreFoundation ___CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 24
- 58 CoreFoundation ___CFRunLoopDoSources0 + 276
- 59 CoreFoundation ___CFRunLoopRun + 1204
- 60 CoreFoundation CFRunLoopRunSpecific + 552
- 61 GraphicsServices GSEventRunModal + 100
- 62 UIKit UIApplicationMain + 236
- 63 x5gamehelper main + 88
- 64 libdyld.dylib _start + 4
类型3:
- #0 Thread
- SIGTRAP
- 0 WebCore WebCore::TimerBase::~TimerBase() + 120
- 1 WebCore WebCore::TimerBase::~TimerBase() + 40
- 2 WebCore WebCore::MediaElementSession::~MediaElementSession() + 96
- 3 WebCore WebCore::HTMLMediaElement::~HTMLMediaElement() + 1340
- 4 WebCore WebCore::HTMLVideoElement::~HTMLVideoElement() + 176
- 5 JavaScriptCore void JSC::MarkedBlock::Handle::specializedSweep<true,JSC::AllocationFailureMode) + 216
- 14 WebCore std::__1::enable_if<std::is_same<WebCore::WebSocket,WebCore::WebSocket>::value,WebCore::JSDOMWrapperConverterTraits<WebCore::WebSocket>::WrapperClass*>::type WebCore::createWrapper<WebCore::WebSocket,WebCore::WebSocket>(WebCore::JSDOMGlobalObject*,***::Ref<WebCore::WebSocket,***::DumbPtrTraits<WebCore::WebSocket> >&&) + 220
- 15 WebCore WebCore::constructJSWebSocket1(JSC::ExecState*) + 284
- 16 WebCore WebCore::JSDOMConstructor<WebCore::JSWebSocket>::construct(JSC::ExecState*) + 136
- 17 JavaScriptCore JSC::LLInt::setUpCall(JSC::ExecState*,JSC::Instruction*,JSC::CodeSpecializationKind,JSC::LLIntCallLinkInfo*) + 580
- 18 JavaScriptCore _llint_entry + 30024
- 19 JavaScriptCore _llint_entry + 28904
- 20 JavaScriptCore _llint_entry + 28904
- 21 JavaScriptCore _llint_entry + 29020
- 22 JavaScriptCore _llint_entry + 28904
- 23 JavaScriptCore _llint_entry + 28904
- 24 JavaScriptCore _llint_entry + 29020
- 25 JavaScriptCore _llint_entry + 29020
- 26 JavaScriptCore _llint_entry + 29020
- 27 JavaScriptCore _llint_entry + 29020
- 28 JavaScriptCore _vmEntryToJavaScript + 272
- 29 JavaScriptCore JSC::JITCode::execute(JSC::VM*,JSC::ProtoCallFrame*) + 184
- 30 JavaScriptCore JSC::Interpreter::executeCall(JSC::ExecState*,JSC::ArgList const&) + 464
- 31 JavaScriptCore JSC::boundThisNoArgsFunctionCall(JSC::ExecState*) + 512
- 32 JavaScriptCore _llint_entry + 31860
- 33 JavaScriptCore _llint_entry + 29020
- 34 JavaScriptCore _vmEntryToJavaScript + 272
- 35 JavaScriptCore JSC::JITCode::execute(JSC::VM*,JSC::ProtoCallFrame*) + 184
- 36 JavaScriptCore JSC::Interpreter::executeCall(JSC::ExecState*,JSC::ArgList const&) + 464
- 37 JavaScriptCore JSC::boundThisNoArgsFunctionCall(JSC::ExecState*) + 512
- 38 JavaScriptCore _llint_entry + 31860
- 39 JavaScriptCore _llint_entry + 29020
- 40 JavaScriptCore _llint_entry + 29020
- 41 JavaScriptCore _llint_entry + 29020
- 42 JavaScriptCore _llint_entry + 28904
- 43 JavaScriptCore _llint_entry + 29020
- 44 JavaScriptCore _llint_entry + 28904
- 45 JavaScriptCore _llint_entry + 28904
- 46 JavaScriptCore _llint_entry + 28904
- 47 JavaScriptCore _vmEntryToJavaScript + 272
- 48 JavaScriptCore JSC::JITCode::execute(JSC::VM*,JSC::ProtoCallFrame*) + 184
- 49 JavaScriptCore JSC::Interpreter::executeCall(JSC::ExecState*,JSC::ArgList const&) + 464
- 50 JavaScriptCore JSC::profiledCall(JSC::ExecState*,***::NakedPtr<JSC::Exception>&) + 180
- 51 WebCore WebCore::JSEventListener::handleEvent(WebCore::ScriptExecutionContext&,WebCore::Event&) + 1176
- 52 WebCore WebCore::EventTarget::fireEventListeners(WebCore::Event&,***::FastMalloc>) + 760
- 53 WebCore WebCore::EventTarget::fireEventListeners(WebCore::Event&) + 596
- 54 WebCore WebCore::EventTarget::dispatchEvent(WebCore::Event&) + 116
- 55 WebCore WebCore::WebSocket::didReceiveBinaryData(***::Vector<unsigned char,***::FastMalloc>&&) + 236
- 56 WebCore WebCore::WebSocketChannel::processFrame() + 2912
- 57 WebCore WebCore::WebSocketChannel::processBuffer() + 112
- 58 WebCore WebCore::WebSocketChannel::didReceiveSocketStreamData(WebCore::SocketStreamHandle&,unsigned long) + 112
- 59 WebCore WebCore::SocketStreamHandleImpl::readStreamCallback(unsigned long) + 544
- 60 CoreFoundation __signalEventSync + 212
- 61 CoreFoundation __cfstream_solo_signalEventSync + 260
- 62 CoreFoundation __CFStreamSignalEvent + 548
- 63 CFNetwork SocketStream::dispatchSignalFromSocketCallbackUnlocked(SocketStreamSignalHolder*) + 64
- 64 CFNetwork SocketStream::socketCallback(__CFSocket*,void const*) + 148
- 65 CFNetwork SocketStream::_SocketCallBack_stream(__CFSocket*,void*) + 88
- 66 CoreFoundation ___CFSocketPerformV0 + 1352
- 67 CoreFoundation ___CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 24
- 68 CoreFoundation ___CFRunLoopDoSources0 + 276
- 69 CoreFoundation ___CFRunLoopRun + 1204
- 70 CoreFoundation CFRunLoopRunSpecific + 552
- 71 GraphicsServices GSEventRunModal + 100
- 72 UIKit UIApplicationMain + 236
- 73 x5gamehelper main + 88
- 74 libdyld.dylib _start + 4
有谁能够帮我 ?