首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >奇怪的iOS UIWebView Crash称为WTF Crash

奇怪的iOS UIWebView Crash称为WTF Crash
EN

Stack Overflow用户
提问于 2016-02-01 18:48:08
回答 4查看 6K关注 0票数 6

我在一些屏幕中使用UIWebViews,因为我需要一个完美的超文本标记语言文本解析。

根据崩溃报告,在这些屏幕上发生了大量的崩溃,称为WTF崩溃。这是那次坠机的痕迹

代码语言:javascript
复制
Crashed: WebThread
EXC_BAD_ACCESS KERN_INVALID_ADDRESS 0x00000000bbadbeef

Thread : Crashed: WebThread
0  JavaScriptCore                 0x184fd2710 WTFCrash + 72
1  JavaScriptCore                 0x184fd2708 WTFCrash + 64
2  WebCore                        0x1852b7d78 <redacted> + 362
3  WebCore                        0x1852b7bec <redacted> + 44
4  CoreFoundation                 0x1817d8588 __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 32
5  CoreFoundation                 0x1817d632c __CFRunLoopDoObservers + 372
6  CoreFoundation                 0x1817d6674 __CFRunLoopRun + 696
7  CoreFoundation                 0x181705680 CFRunLoopRunSpecific + 384
8  WebCore                        0x1852b5998 <redacted> + 456
9  libsystem_pthread.dylib        0x18148bb28 <redacted> + 156
10 libsystem_pthread.dylib        0x18148ba8c _pthread_start + 154
11 libsystem_pthread.dylib        0x181489028 thread_start + 4

这次崩溃没有操作系统版本,也没有设备关系。

我也没有在使用UIWebView方面做任何花哨的事情。它像所有其他组件一样被添加到nib中,在实现文件中,我使用它的方式如下

代码语言:javascript
复制
self.webView.scrollView.scrollEnabled = NO;
self.webView.scrollView.bounces = NO;
self.webView.opaque = NO;
self.webView.backgroundColor = [UIColor clearColor];
self.webView.delegate = self;
[self.webView loadHTMLString:htmlString baseURL:nil];

对如何解决WTF崩溃有什么建议吗?

编辑:这是htmlString的外观

代码语言:javascript
复制
Printing description of htmlString:
<html><body style="font-family:HelveticaNeue; font-size:10; background-color:#E5E4E4; text-align:left; color:#696969 ">test string</body></html>
EN

回答 4

Stack Overflow用户

发布于 2016-05-10 03:08:39

我不知道您是如何创建UIWebView的。但是我在WTFCrash上遇到了类似的问题,我能够通过确保UIWebView是在主线程上创建的来解决这个问题:

代码语言:javascript
复制
- (void)createWebView{
    if (![NSThread isMainThread]) {
        dispatch_async(dispatch_get_main_queue(), ^{
            [self createWebView];
        });
        return;
    }
    self.webView = [[UIWebView alloc] initWithFrame:CGRectMake(0, 0, 320, 320)];
    //Rest of my code
}
票数 1
EN

Stack Overflow用户

发布于 2017-07-31 16:49:50

你在用Safari调试你的web视图吗?如果是,在您退出Safari之后,崩溃应该会消失。

我在使用WKWebView时遇到了类似的崩溃,我确信3天前同样的代码还能正常工作。hlung的评论救了我,你可以在HERE找到它。

以下是我的案例中的一段崩溃日志,供您参考。

异常类型: EXC_BAD_ACCESS (SIGSEGV)异常子类型: KERN_INVALID_ADDRESS at 0x00000000dbbdfb10由线程:0触发过滤系统日志:无发现线程0崩溃:0 JavaScriptCore 0x225d74c6 WTF::HashSet,WTF::HashTraits >::remove(JSC::MarkedArgumentBuffer* const&) + 54 1 JavaScriptCore 0x22620b41 JSC::VM::~VM() + 211 2 JavaScriptCore 0x22197e57 JSC::JSLockHolder::~JSLockHolder() + 73 3 JavaScriptCore 0x2248defd JSContextGroupRelease + 61 4 JavaScriptCore 0x2250e37d -JSVirtualMachine dealloc + 27 5 libobjc.A.dylib 0x1dac5195 objc_Object::sidetable_release(布尔)+ 239 6 JavaScriptCore 0x2248d261 -JSContext dealloc + 125 7 libobjc.A.dylib 0x1dac5195 objc_object::sidetable_release(布尔)+ 239 8 JavaScriptCore 0x226470af 125void*) + 25 9 CoreFoundation 0x1e807357 __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__ + 15 10 CoreFoundation 0x1e807029 __CFRunLoopDoTimer + 897 11 CoreFoundation 0x1e8069e1 __CFRunLoopDoTimers + 221 12 CoreFoundation 0x1e804cc5 __CFRunLoopRun + 1365 13 CoreFoundation 0x1e754073 CFRunLoopRunSpecific + 487 14 CoreFoundation 0x1e753e81 CFRunLoopRunInMode + 105 15 GraphicsServices0x1ff00bfd GSEventRunModal + 157 16 UIKit 0x2390e82f -UIApplication _run + 575 17 UIKit 0x23908f61 UIApplicationMain + 151 18 MyApp 0x00488b29 0x2c000 + 4573993 19 libdyld.dylib 0x1df1e50b start + 3

票数 1
EN

Stack Overflow用户

发布于 2018-07-23 00:49:41

WebKit是Web视图背后的引擎,当它发现内存问题时,可能会引发崩溃。正如您所发现的,它们由特殊的十六进制单词0x00000000bbadbeef标识。

你正在访问的网页看起来微不足道,所以你遇到问题是一个惊喜。我建议您遵循https://webkit.org/debugging-webkit/#ios-simulator中描述的WebKit调试工具

请使用本文所揭示的任何日志或见解来更新您的问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35128579

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档