I've recently got a crash report from Crash Report Tools. This crash is being refered to UIWebView WebCore crash, my app uses UIWebView only ,And i can't switch to WKWebview recently. Below is the crash report,and I can't reproduce it. It happened on device iPhone 6,7,8,X, but only using version iOS 11.3 (15E216).
this crash has 3 diffrent crash stack. Any advice would be helpful.
type 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
type 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::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
5 JavaScriptCore void JSC::MarkedBlock::Handle::finishSweepKnowingHeapCellType<JSC::JSDestructibleObjectDestroyFunc>(JSC::FreeList*, JSC::JSDestructibleObjectDestroyFunc const&)::'lambda'()::operator()() const + 408
type 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::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
==
fully crash stack:
type 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::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
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::JSValue, JSC::CallType, JSC::CallData const&, JSC::JSValue, 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, ***::CrashOnOverflow, 16ul, ***::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*, unsigned long, __CFData const*, void const*) + 148
54 CFNetwork SocketStream::_SocketCallBack_stream(__CFSocket*, unsigned long, __CFData const*, 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
type 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::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
5 JavaScriptCore void JSC::MarkedBlock::Handle::finishSweepKnowingHeapCellType<JSC::JSDestructibleObjectDestroyFunc>(JSC::FreeList*, 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&, unsigned long, JSC::GCDeferralContext*, JSC::AllocationFailureMode) + 216
13 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
14 WebCore WebCore::toJS(JSC::ExecState*, WebCore::JSDOMGlobalObject*, 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::JSObject*, JSC::CallType, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&) + 464
40 JavaScriptCore JSC::profiledCall(JSC::ExecState*, JSC::ProfilingReason, JSC::JSValue, JSC::CallType, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&, ***::NakedPtr<JSC::Exception>&) + 180
41 WebCore WebCore::JSEventListener::handleEvent(WebCore::ScriptExecutionContext&, WebCore::Event&) + 1176
42 WebCore WebCore::EventTarget::fireEventListeners(WebCore::Event&, ***::Vector<***::RefPtr<WebCore::RegisteredEventListener, ***::DumbPtrTraits<WebCore::RegisteredEventListener> >, 1ul, ***::CrashOnOverflow, 16ul, ***::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, 0ul, ***::CrashOnOverflow, 16ul, ***::FastMalloc>&&) + 236
46 WebCore WebCore::WebSocketChannel::processFrame() + 2912
47 WebCore WebCore::WebSocketChannel::processBuffer() + 112
48 WebCore WebCore::WebSocketChannel::didReceiveSocketStreamData(WebCore::SocketStreamHandle&, char const*, 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*, unsigned long, __CFData const*, void const*) + 148
55 CFNetwork SocketStream::_SocketCallBack_stream(__CFSocket*, unsigned long, __CFData const*, void const*, 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
type 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::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
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::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::JSValue, 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::JSObject*, JSC::CallType, JSC::CallData const&, JSC::JSValue, 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::JSObject*, JSC::CallType, JSC::CallData const&, JSC::JSValue, 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::JSObject*, JSC::CallType, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&) + 464
50 JavaScriptCore JSC::profiledCall(JSC::ExecState*, JSC::ProfilingReason, JSC::JSValue, JSC::CallType, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&, ***::NakedPtr<JSC::Exception>&) + 180
51 WebCore WebCore::JSEventListener::handleEvent(WebCore::ScriptExecutionContext&, WebCore::Event&) + 1176
52 WebCore WebCore::EventTarget::fireEventListeners(WebCore::Event&, ***::Vector<***::RefPtr<WebCore::RegisteredEventListener, ***::DumbPtrTraits<WebCore::RegisteredEventListener> >, 1ul, ***::CrashOnOverflow, 16ul, ***::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, 0ul, ***::CrashOnOverflow, 16ul, ***::FastMalloc>&&) + 236
56 WebCore WebCore::WebSocketChannel::processFrame() + 2912
57 WebCore WebCore::WebSocketChannel::processBuffer() + 112
58 WebCore WebCore::WebSocketChannel::didReceiveSocketStreamData(WebCore::SocketStreamHandle&, char const*, 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*, unsigned long, __CFData const*, void const*) + 148
65 CFNetwork SocketStream::_SocketCallBack_stream(__CFSocket*, unsigned long, __CFData const*, void const*, 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
Can anybody help me ? :)
I had faced same type of issue due to JavaScriptCore. After wasted 3-4 days time, Finally got below solution.
Just disable JSC_useJIT envirnment to false for iOS 11.0. It is worked for me.
I put this code in didFinishLaunchingWithOptions method in AppDelegate file:
setenv("JSC_useJIT", "false", 0);
I hope this will help.
Find reference from Here
You appear to have exposed a bug with TimerBase in WebKit as reported here:
https://bugs.webkit.org/show_bug.cgi?id=182931
They mention a fix, which may have been picked up in the recently released 11.3.1.
You can see the fix here if you're curious.
We have an iOS app with a UIWebView that loads YouTube iframe player to play youtube videos. After iOS 11.3 released we found that there are a lot of javascript core crashes. On Fabric crashlytics the crash stcktrace looks like this
Crashed: WebThread
0 JavaScriptCore 0x18aa48298 JSC::JSLock::DropAllLocks::DropAllLocks(JSC::VM&) + 176
1 JavaScriptCore 0x18aa4826c JSC::JSLock::DropAllLocks::DropAllLocks(JSC::VM&) + 132
2 WebCore 0x18b78b794 SendDelegateMessage(NSInvocation*) + 360
3 WebKitLegacy 0x18cea7c68 CallDelegate(void (*)(), WebView*, objc_object*, objc_selector*, objc_object*, objc_object*, objc_object*) + 144
4 WebKitLegacy 0x18ce1b8d0 WebFrameLoaderClient::dispatchDidFailLoading(WebCore::DocumentLoader*, unsigned long, WebCore::ResourceError const&) + 276
5 WebCore 0x18b7ba660 WebCore::ResourceLoadNotifier::didFailToLoad(WebCore::ResourceLoader*, WebCore::ResourceError const&) + 128
6 WebCore 0x18b7ba118 WebCore::ResourceLoader::cancel(WebCore::ResourceError const&) + 464
7 WebCore 0x18b7b9ea4 WebCore::ResourceLoader::cancel() + 64
8 WebCore 0x18c6bbe90 WebCore::CachedResource::removeClient(WebCore::CachedResourceClient&) + 264
9 WebCore 0x18c680558 WebCore::MediaResource::~MediaResource() + 64
10 WebCore 0x18c680608 WebCore::MediaResource::~MediaResource() + 12
11 libobjc.A.dylib 0x1827daef4 object_cxxDestructFromClass(objc_object*, objc_class*) + 148
12 libobjc.A.dylib 0x1827e8990 objc_destructInstance + 68
13 libobjc.A.dylib 0x1827e89f8 object_dispose + 16
14 WebCore 0x18cbff8f0 -[WebCoreNSURLSessionDataTask dealloc] + 320
15 CoreFoundation 0x1834f24e4 -[__NSDictionaryM dealloc] + 164
16 AVFoundation 0x189130cf8 -[AVAssetCustomURLBridgeForNSURLSession dealloc] + 68
17 AVFoundation 0x18917ce54 -[AVAssetResourceLoader dealloc] + 356
18 AVFoundation 0x189060460 -[AVURLAsset dealloc] + 248
19 AVFoundation 0x189097c34 -[AVPlayerItemTrack dealloc] + 192
20 WebCore 0x18b8a9fac WebCore::AVTrackPrivateAVFObjCImpl::~AVTrackPrivateAVFObjCImpl() + 92
21 WebCore 0x18cbf09dc WebCore::VideoTrackPrivateAVFObjC::~VideoTrackPrivateAVFObjC() + 48
22 WebCore 0x18cbefc7c WebCore::VideoTrack::~VideoTrack() + 96
23 WebCore 0x18b982390 WebCore::TrackEvent::~TrackEvent() + 72
24 JavaScriptCore 0x18aa26228 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
25 JavaScriptCore 0x18aa24950 void JSC::MarkedBlock::Handle::finishSweepKnowingHeapCellType<JSC::JSDestructibleObjectDestroyFunc>(JSC::FreeList*, JSC::JSDestructibleObjectDestroyFunc const&)::'lambda'()::operator()() const + 408
26 JavaScriptCore 0x18aa2444c void JSC::MarkedBlock::Handle::finishSweepKnowingHeapCellType<JSC::JSDestructibleObjectDestroyFunc>(JSC::FreeList*, JSC::JSDestructibleObjectDestroyFunc const&) + 320
27 JavaScriptCore 0x18aa24300 JSC::JSDestructibleObjectHeapCellType::finishSweep(JSC::MarkedBlock::Handle&, JSC::FreeList*) + 32
28 JavaScriptCore 0x18a7ac538 JSC::MarkedBlock::Handle::sweep(JSC::FreeList*) + 372
29 JavaScriptCore 0x18a7aa6fc JSC::LocalAllocator::tryAllocateIn(JSC::MarkedBlock::Handle*) + 40
30 JavaScriptCore 0x18a7aa608 JSC::LocalAllocator::tryAllocateWithoutCollecting() + 48
31 JavaScriptCore 0x18a7aa4c8 JSC::LocalAllocator::allocateSlowCase(JSC::GCDeferralContext*, JSC::AllocationFailureMode) + 292
32 JavaScriptCore 0x18a78f4b8 JSC::CompleteSubspace::allocateNonVirtual(JSC::VM&, unsigned long, JSC::GCDeferralContext*, JSC::AllocationFailureMode) + 216
33 WebCore 0x18c171e3c std::__1::enable_if<std::is_same<WebCore::Event, WebCore::Event>::value, WebCore::JSDOMWrapperConverterTraits<WebCore::Event>::WrapperClass*>::type WebCore::createWrapper<WebCore::Event, WebCore::Event>(WebCore::JSDOMGlobalObject*, WTF::Ref<WebCore::Event, WTF::DumbPtrTraits<WebCore::Event> >&&) + 216
34 WebCore 0x18c170be0 WebCore::toJSNewlyCreated(JSC::ExecState*, WebCore::JSDOMGlobalObject*, WTF::Ref<WebCore::Event, WTF::DumbPtrTraits<WebCore::Event> >&&) + 100
35 WebCore 0x18c170444 WebCore::JSEventListener::handleEvent(WebCore::ScriptExecutionContext&, WebCore::Event&) + 872
36 WebCore 0x18c3acbe0 WebCore::EventTarget::fireEventListeners(WebCore::Event&, WTF::Vector<WTF::RefPtr<WebCore::RegisteredEventListener, WTF::DumbPtrTraits<WebCore::RegisteredEventListener> >, 1ul, WTF::CrashOnOverflow, 16ul, WTF::FastMalloc>) + 760
37 WebCore 0x18c3a8798 WebCore::EventTarget::fireEventListeners(WebCore::Event&) + 596
38 WebCore 0x18c3a8524 WebCore::EventContext::handleLocalEvents(WebCore::Event&) const + 120
39 WebCore 0x18c3a9a24 WebCore::dispatchEventInDOM(WebCore::Event&, WebCore::EventPath const&) + 164
40 WebCore 0x18c3a96e8 WebCore::EventDispatcher::dispatchEvent(WebCore::Node&, WebCore::Event&) + 700
41 WebCore 0x18b7cce50 WebCore::HTMLImageLoader::dispatchLoadEvent() + 248
42 WebCore 0x18b7ccd1c WebCore::ImageLoader::dispatchPendingEvent(WebCore::EventSender<WebCore::ImageLoader>*) + 144
43 WebCore 0x18b7ccb94 WebCore::EventSender<WebCore::ImageLoader>::dispatchPendingEvents() + 128
44 WebCore 0x18b743ff0 WebCore::ThreadTimers::sharedTimerFiredInternal() + 352
45 WebCore 0x18b743e7c WebCore::timerFired(__CFRunLoopTimer*, void*) + 28
46 CoreFoundation 0x1835cbaa8 __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__ + 28
47 CoreFoundation 0x1835cb76c __CFRunLoopDoTimer + 864
48 CoreFoundation 0x1835cb010 __CFRunLoopDoTimers + 248
49 CoreFoundation 0x1835c8b60 __CFRunLoopRun + 2168
50 CoreFoundation 0x1834e8da8 CFRunLoopRunSpecific + 552
51 WebCore 0x18b775dcc RunWebThread(void*) + 592
52 libsystem_pthread.dylib 0x183249220 _pthread_body + 272
53 libsystem_pthread.dylib 0x183249110 _pthread_body + 290
54 libsystem_pthread.dylib 0x183247b10 thread_start + 4## Heading ##
Any ideas? Is this a YouTube iframe player issue or UIWebView issue?
Thanks.
getting lots of crashes as below in ios11: any idea what could be reason behind it. its happening in ios11 only. webkit framework is included in project.
Crashed: WebThread
0 JavaScriptCore 0x18d513a2c bmalloc::Heap::allocateLarge(std::__1::lock_guard<bmalloc::StaticMutex>&, unsigned long, unsigned long) + 24
1 JavaScriptCore 0x18d513a20 bmalloc::Heap::allocateLarge(std::__1::lock_guard<bmalloc::StaticMutex>&, unsigned long, unsigned long) + 12
2 JavaScriptCore 0x18d5112a0 bmalloc::Allocator::allocateLarge(unsigned long) + 92
3 JavaScriptCore 0x18cb6bef4 WTF::fastMalloc(unsigned long) + 112
4 JavaScriptCore 0x18d11e6a8 JSC::Heap::addExecutable(JSC::ExecutableBase*) + 352
5 JavaScriptCore 0x18d10a288 JSC::FunctionExecutable::finishCreation(JSC::VM&) + 48
6 JavaScriptCore 0x18d44f7cc JSC::UnlinkedFunctionExecutable::link(JSC::VM&, JSC::SourceCode const&, std::optional<int>, JSC::Intrinsic) + 280
7 JavaScriptCore 0x18d207860 JSC::functionPrototypeApplyCodeGenerator(JSC::VM&) + 64
8 JavaScriptCore 0x18d10d81c JSC::FunctionPrototype::addFunctionProperties(JSC::ExecState*, JSC::JSGlobalObject*, JSC::JSFunction**, JSC::JSFunction**, JSC::JSFunction**) + 156
9 JavaScriptCore 0x18d21a9f8 JSC::JSGlobalObject::init(JSC::VM&) + 1300
10 JavaScriptCore 0x18d224898 JSC::JSGlobalObject::finishCreation(JSC::VM&, JSC::JSObject*) + 144
11 WebCore 0x18e015590 WebCore::JSDOMGlobalObject::finishCreation(JSC::VM&, JSC::JSObject*) + 24
12 WebCore 0x18e850840 WebCore::JSDOMWindowBase::finishCreation(JSC::VM&, WebCore::JSDOMWindowProxy*) + 44
13 WebCore 0x18e7d28ac WebCore::JSDOMWindow::finishCreation(JSC::VM&, WebCore::JSDOMWindowProxy*) + 36
14 WebCore 0x18e8548a4 WebCore::JSDOMWindowProxy::setWindow(WTF::RefPtr<WebCore::DOMWindow>&&) + 516
15 WebCore 0x18eed505c WebCore::ScriptController::setDOMWindowForWindowProxy(WebCore::DOMWindow*) + 360
16 WebCore 0x18dfed904 WebCore::FrameLoader::clear(WebCore::Document*, bool, bool, bool) + 476
17 WebCore 0x18e3a42c8 WebCore::DocumentWriter::begin(WebCore::URL const&, bool, WebCore::Document*) + 368
18 WebCore 0x18dfebb58 WebCore::DocumentLoader::commitData(char const*, unsigned long) + 176
19 WebKitLegacy 0x18f3d3bd8 -[WebHTMLRepresentation receivedData:withDataSource:] + 112
20 WebKitLegacy 0x18f3d3af8 -[WebDataSource(WebInternal) _receivedData:] + 68
21 WebKitLegacy 0x18f3d3a98 WebFrameLoaderClient::committedLoad(WebCore::DocumentLoader*, char const*, int) + 112
22 WebCore 0x18e0099c4 WebCore::DocumentLoader::commitLoad(char const*, int) + 172
23 WebCore 0x18e008bec WebCore::DocumentLoader::continueAfterContentPolicy(WebCore::PolicyAction) + 1796
24 WebCore 0x18e3930a0 WebCore::DocumentLoader::responseReceived(WebCore::ResourceResponse const&) + 1820
25 WebCore 0x18e392004 WebCore::DocumentLoader::handleSubstituteDataLoadNow() + 308
26 WebCore 0x18dfaf000 WebCore::ThreadTimers::sharedTimerFiredInternal() + 172
27 WebCore 0x18dfaef40 WebCore::timerFired(__CFRunLoopTimer*, void*) + 28
28 CoreFoundation 0x186152fc0 __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__ + 28
29 CoreFoundation 0x186152ce4 __CFRunLoopDoTimer + 864
30 CoreFoundation 0x1861524e4 __CFRunLoopDoTimers + 248
31 CoreFoundation 0x1861500cc __CFRunLoopRun + 1928
32 CoreFoundation 0x18606fe58 CFRunLoopRunSpecific + 436
33 WebCore 0x18dfe0a34 RunWebThread(void*) + 560
34 libsystem_pthread.dylib 0x185dd02b4 _pthread_body + 308
35 libsystem_pthread.dylib 0x185dd0180 _pthread_body + 310
36 libsystem_pthread.dylib 0x185dceb74 thread_start + 4
0
Crashed: WebThread
EXC_BAD_ACCESS KERN_INVALID_ADDRESS 0x0000000000000001
libGPUSupportMercury.dylib gpus_ReturnNotPermittedKillClient
1 AGXGLDriver (null)
2 libGPUSupportMercury.dylib gpusSubmitDataBuffers
3AGXGLDriver (null)
4 WebCore WebCore::GraphicsContext3D::reshape(int, int) + 528
5 WebCore WebCore::WebGLRenderingContextBase::initializeNewContext() + 716
6 WebCore
WebCore::WebGLRenderingContextBase::WebGLRenderingContextBase(WebCore::HTMLCanvasElement&, WTF::RefPtr<WebCore::GraphicsContext3D>&&, WebCore::GraphicsContext3DAttributes) + 544
7 WebCore
WebCore::WebGLRenderingContext::WebGLRenderingContext(WebCore::HTMLCanvasElement&, WTF::PassRefPtr<WebCore::GraphicsContext3D>, WebCore::GraphicsContext3DAttributes) + 60
8 WebCore
WebCore::WebGLRenderingContextBase::create(WebCore::HTMLCanvasElement&, WebCore::GraphicsContext3DAttributes&, WTF::String const&) + 1176
9 WebCore
WebCore::HTMLCanvasElement::getContextWebGL(WTF::String const&, WebCore::GraphicsContext3DAttributes&&) + 156
10 WebCore
WebCore::JSHTMLCanvasElement::getContext(JSC::ExecState&) + 360
11 WebCore
WebCore::jsHTMLCanvasElementPrototypeFunctionGetContext(JSC::ExecState*) + 172
12 JavaScriptCore
llint_entry + 28916
13 JavaScriptCore
llint_entry + 26408
14 JavaScriptCore
llint_entry + 26408
15 JavaScriptCore
llint_entry + 26408
16 JavaScriptCore
llint_entry + 26408
17 JavaScriptCore
llint_entry + 26408
18 JavaScriptCore
llint_entry + 26408
19 JavaScriptCore
llint_entry + 26408
20 JavaScriptCore
llint_entry + 26408
21 JavaScriptCore
vmEntryToJavaScript + 264
22 JavaScriptCore
JSC::JITCode::execute(JSC::VM*, JSC::ProtoCallFrame*) + 164
23 JavaScriptCore
JSC::Interpreter::executeCall(JSC::ExecState*, JSC::JSObject*, JSC::CallType, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&) + 416
24 JavaScriptCore
JSC::boundFunctionCall(JSC::ExecState*) + 552
25 JavaScriptCore
llint_entry + 28916
26 JavaScriptCore
llint_entry + 26408
27 JavaScriptCore
vmEntryToJavaScript + 264
28 JavaScriptCore
JSC::JITCode::execute(JSC::VM*, JSC::ProtoCallFrame*) + 164
29 JavaScriptCore
JSC::Interpreter::executeCall(JSC::ExecState*, JSC::JSObject*, JSC::CallType, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&) + 416
30 JavaScriptCore
JSC::profiledCall(JSC::ExecState*, JSC::ProfilingReason, JSC::JSValue, JSC::CallType, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&) + 164
31 JavaScriptCore
JSC::JSJobMicrotask::run(JSC::ExecState*) + 436
32 WebCore
WebCore::JSDOMWindowMicrotaskCallback::call() + 152
33 WebCore
WebCore::ActiveDOMCallbackMicrotask::run() + 48
34 WebCore
WebCore::MicrotaskQueue::performMicrotaskCheckpoint() + 100
35 WebCore
WebCore::ScriptController::evaluateInWorld(WebCore::ScriptSourceCode const&, WebCore::DOMWrapperWorld&, WebCore::ExceptionDetails*) + 352
36 WebCore
WebCore::ScriptElement::executeClassicScript(WebCore::ScriptSourceCode const&) + 548
37 WebCore
WebCore::LoadableClassicScript::execute(WebCore::ScriptElement&) + 52
38 WebCore
WebCore::ScriptElement::executeScriptAndDispatchEvent(WebCore::LoadableScript&) + 216
39 WebCore
WebCore::ScriptRunner::timerFired() + 504
40 WebCore
WebCore::ThreadTimers::sharedTimerFiredInternal() + 172
41 WebCore
WebCore::timerFired(__CFRunLoopTimer*, void*) + 28
42 CoreFoundation
__CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__ + 28
43 CoreFoundation
__CFRunLoopDoTimer + 856
44 CoreFoundation
__CFRunLoopDoTimers + 244
45 CoreFoundation
__CFRunLoopRun + 1484
46 CoreFoundation
CFRunLoopRunSpecific + 424
47 WebCore
RunWebThread(void*) + 456
48 libsystem_pthread.dylib
_pthread_body + 240
49 libsystem_pthread.dylib
_pthread_body + 282
50
libsystem_pthread.dylib
thread_start + 4
That's a crash. If you want further help please provide the code that caused this error.