UIWebView崩溃:OpenGLES - glTexImage2D

时间:2015-11-25 11:34:49

标签: ios opengl-es uiwebview webgl

我有一个基于UIWebView的iOS应用程序,它最近开始崩溃了很多。我坚信崩溃是由网络内容发生变化引起的(最糟糕的情况,但最有可能的情况是,它是第三方横幅广告),因为崩溃报告开始进入所有版本我的iOS应用程序在同一天突然从0崩溃到数百次崩溃。

以下是iOS9上的崩溃堆栈跟踪:

Thread : Crashed: WebThread
0  libmetal_timestamp.dylib       0x18cf2df08 (Missing)
1  libmetal_timestamp.dylib       0x18cf2eec4 (Missing)
2  libmetal_timestamp.dylib       0x18cf335ac (Missing)
3  MobileCoreServices             0x185c941a8 (Missing)
4  MobileCoreServices             0x185bf3428 (Missing)
5  OpenGLES                       0x185ccea9c glTexImage2D + 108
6  WebCore                        0x1946e3da8 WebCore::GraphicsContext3D::texImage2D(unsigned int, int, unsigned int, int, int, int, unsigned int, unsigned int, void const*) + 60
7  WebCore                        0x194ffb37c WebCore::WebGLRenderingContextBase::texImage2DBase(unsigned int, int, unsigned int, int, int, int, unsigned int, unsigned int, void const*, int&) + 160
8  WebCore                        0x194ffbb84 WebCore::WebGLRenderingContextBase::texImage2D(unsigned int, int, unsigned int, int, int, int, unsigned int, unsigned int, JSC::ArrayBufferView*, int&) + 784
9  WebCore                        0x194b80ba4 WebCore::jsWebGLRenderingContextBasePrototypeFunctionTexImage2D(JSC::ExecState*) + 2880
10 JavaScriptCore                 0x1842422f0 llint_entry + 25056
11 JavaScriptCore                 0x184241d10 llint_entry + 23552
12 JavaScriptCore                 0x184241d10 llint_entry + 23552
13 JavaScriptCore                 0x184241d10 llint_entry + 23552
14 JavaScriptCore                 0x18423bef8 vmEntryToJavaScript + 312
15 JavaScriptCore                 0x184168c48 JSC::JITCode::execute(JSC::VM*, JSC::ProtoCallFrame*) + 180
16 JavaScriptCore                 0x183e02108 JSC::Interpreter::executeCall(JSC::ExecState*, JSC::JSObject*, JSC::CallType, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&) + 400
17 JavaScriptCore                 0x183eb41bc JSC::boundFunctionCall(JSC::ExecState*) + 512
18 JavaScriptCore                 0x18423c080 vmEntryToNative + 320
19 JavaScriptCore                 0x183e0214c JSC::Interpreter::executeCall(JSC::ExecState*, JSC::JSObject*, JSC::CallType, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&) + 468
20 JavaScriptCore                 0x183f117dc JSC::call(JSC::ExecState*, JSC::JSValue, JSC::CallType, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&, WTF::NakedPtr<JSC::Exception>&) + 80
21 WebCore                        0x1943b8ecc WebCore::JSCallbackData::invokeCallback(JSC::JSValue, JSC::MarkedArgumentBuffer&, bool*) + 580
22 WebCore                        0x194a60434 WebCore::JSRequestAnimationFrameCallback::handleEvent(double) + 196
23 WebCore                        0x194dd634c WebCore::ScriptedAnimationController::serviceScriptedAnimations(double) + 424
24 WebCore                        0x194575c48 WebCore::DisplayRefreshMonitor::displayDidRefresh() + 428
25 QuartzCore                     0x187567840 CA::Display::DisplayLinkItem::dispatch() + 40
26 QuartzCore                     0x1875676f4 CA::Display::DisplayLink::dispatch_items(unsigned long long, unsigned long long, unsigned long long) + 424
27 IOKit                          0x183a262f8 IODispatchCalloutFromCFMessage + 372
28 CoreFoundation                 0x18272e840 __CFMachPortPerform + 180
29 CoreFoundation                 0x182744c7c __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 56
30 CoreFoundation                 0x1827443b4 __CFRunLoopDoSource1 + 436
31 CoreFoundation                 0x18274210c __CFRunLoopRun + 1800
32 CoreFoundation                 0x182670ca0 CFRunLoopRunSpecific + 384
33 WebCore                        0x19425a54c RunWebThread(void*) + 456
34 libsystem_pthread.dylib        0x197c83b28 _pthread_body + 156
35 libsystem_pthread.dylib        0x197c83a8c _pthread_body + 154
36 libsystem_pthread.dylib        0x197c81028 thread_start + 4

在iOS8上,它崩溃了一个略有不同但非常相似的堆栈跟踪。 iOS8和iOS9崩溃同时开始,所以毫无疑问是同样的事情。

鉴于崩溃报告中的OpenGLES引用,我怀疑它与涉及硬件的DOM呈现有关。有没有其他人开发了混合网络应用程序并看到这些崩溃?任何导致应用程序以这种方式崩溃的特定CSS转换/转换?

此外,还有对WebGLRenderingContextBase的引用,这是否意味着它必须由网页上的实际WebGL引起,还是仅仅源自非3D CSS样式?

0 个答案:

没有答案