2

私のアプリは、基本的に WebView ベースのアプリであるため、UIWebViews を広範囲に使用しています。

アプリの左側には、Facebook や Path アプリと同様のスライド アウト メニューがあります。これらの表の行の 1 つを選択すると、メインの Web ビューがスライドして戻り、URL が読み込まれます。

Webthread から WebCore がランダムにクラッシュするのを見たことがありますが、それを解決する方法がまったくわかりません。ゾンビとメモリの割り当てをテストしましたが、アプリは常に 3 ~ 4 MB のライブ バイト内にとどまります。

関連性があるかどうかはわかりませんが、webview がそのページを読み込むときに重要な「フック」があります。たとえば、shouldStartLoad 内で、特定の URL をチェックしてから、ページで JS 関数を呼び出します。これがクラッシュの原因になるかどうかはわかりません。

クラッシュ ログは、Webcore クラッシュのさまざまな領域を示しています。以下にいくつかの最新の亜種を追加しましたが、これらがすべての可能性のある亜種であるかどうかはわかりません。

要するに、WebCore クラッシュとは何ですか? 私が何もできないのはUIWebView内のバグですか?ありがとうございました!

Thread 2 name:  WebThread
Thread 2 Crashed:
0   WebCore                         0x32c540c0 WebCore::Document::body() const + 4
1   WebCore                         0x32d04052 WebCore::CachedResourceLoader::preload(WebCore::CachedResource::Type, WTF::String const&, WTF::String const&, bool) + 18
2   WebCore                         0x32d03ebe WebCore::HTMLPreloadScanner::processToken() + 1510
3   WebCore                         0x32d03872 WebCore::HTMLPreloadScanner::scan() + 42
4   WebCore                         0x32cebc24 WebCore::HTMLDocumentParser::append(WebCore::SegmentedString const&) + 92
5   WebCore                         0x32cbce20 WebCore::DecodedDataDocumentParser::appendBytes(WebCore::DocumentWriter*, char const*, int, bool) + 200
6   WebCore                         0x32ceb8d0 WebCore::DocumentWriter::addData(char const*, int, bool) + 48
7   WebCore                         0x32ce5c3e WebCore::DocumentLoader::commitData(char const*, int) + 122
8   WebKit                          0x358cbc9a -[WebHTMLRepresentation receivedData:withDataSource:] + 158
9   WebKit                          0x358cbb10 -[WebDataSource(WebInternal) _receivedData:] + 164
10  WebKit                          0x358cba48 WebFrameLoaderClient::committedLoad(WebCore::DocumentLoader*, char const*, int) + 100
11  WebCore                         0x32ce2a48 WebCore::DocumentLoader::commitLoad(char const*, int) + 120
12  WebCore                         0x32ce29b4 WebCore::DocumentLoader::receivedData(char const*, int) + 72
13  WebCore                         0x32ce25da WebCore::ResourceLoader::didReceiveData(char const*, int, long long, bool) + 34
14  WebCore                         0x32ce2566 WebCore::MainResourceLoader::didReceiveData(char const*, int, long long, bool) + 474
15  WebCore                         0x32ce22b2 WebCore::ResourceLoader::didReceiveData(WebCore::ResourceHandle*, char const*, int, int) + 42
16  WebCore                         0x32ce2234 WebCore::ResourceHandle::handleDataArray(__CFArray const*) + 212
17  WebCore                         0x32ce2156 WebCore::didReceiveDataArray(_CFURLConnection*, __CFArray const*, void const*) + 34
18  CFNetwork                       0x370dd058 URLConnectionClient::_clientDidReceiveData(__CFArray const*, URLConnectionClient::ClientConnectionEventQueue*) + 220
19  CFNetwork                       0x370434b0 URLConnectionClient::ClientConnectionEventQueue::processAllEventsAndConsumePayload(XConnectionEventInfo<XClientEvent, XClientEventParams>*, long) + 436
20  CFNetwork                       0x3704319c URLConnectionClient::processEvents() + 100
21  CFNetwork                       0x370430d2 MultiplexerSource::perform() + 150
22  CoreFoundation                  0x3738aacc __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 8
23  CoreFoundation                  0x3738a32e __CFRunLoopDoSources0 + 358
24  CoreFoundation                  0x3738903e __CFRunLoopRun + 646
25  CoreFoundation                  0x3730c49e CFRunLoopRunSpecific + 294
26  CoreFoundation                  0x3730c366 CFRunLoopRunInMode + 98
27  WebCore                         0x32cb5c9c RunWebThread(void*) + 396
28  libsystem_c.dylib               0x33c2b72e _pthread_start + 314
29  libsystem_c.dylib               0x33c2b5e8 thread_start + 0

また

Thread 2 name:  WebThread
Thread 2 Crashed:
0   WebCore                         0x32cbe120 WebCore::HTMLDocumentParser::pumpTokenizer(WebCore::HTMLDocumentParser::SynchronousMode) + 312
1   WebCore                         0x32cebc66 WebCore::HTMLDocumentParser::append(WebCore::SegmentedString const&) + 158
2   WebCore                         0x32cbce20 WebCore::DecodedDataDocumentParser::appendBytes(WebCore::DocumentWriter*, char const*, int, bool) + 200
3   WebCore                         0x32ceb8d0 WebCore::DocumentWriter::addData(char const*, int, bool) + 48
4   WebCore                         0x32ce5c3e WebCore::DocumentLoader::commitData(char const*, int) + 122
5   WebKit                          0x358cbc9a -[WebHTMLRepresentation receivedData:withDataSource:] + 158
6   WebKit                          0x358cbb10 -[WebDataSource(WebInternal) _receivedData:] + 164
7   WebKit                          0x358cba48 WebFrameLoaderClient::committedLoad(WebCore::DocumentLoader*, char const*, int) + 100
8   WebCore                         0x32ce2a48 WebCore::DocumentLoader::commitLoad(char const*, int) + 120
9   WebCore                         0x32ce29b4 WebCore::DocumentLoader::receivedData(char const*, int) + 72
10  WebCore                         0x32ce25da WebCore::ResourceLoader::didReceiveData(char const*, int, long long, bool) + 34
11  WebCore                         0x32ce2566 WebCore::MainResourceLoader::didReceiveData(char const*, int, long long, bool) + 474
12  WebCore                         0x32ce22b2 WebCore::ResourceLoader::didReceiveData(WebCore::ResourceHandle*, char const*, int, int) + 42
13  WebCore                         0x32ce2276 WebCore::ResourceHandle::handleDataArray(__CFArray const*) + 278
14  WebCore                         0x32ce2156 WebCore::didReceiveDataArray(_CFURLConnection*, __CFArray const*, void const*) + 34
15  CFNetwork                       0x370dd058 URLConnectionClient::_clientDidReceiveData(__CFArray const*, URLConnectionClient::ClientConnectionEventQueue*) + 220
16  CFNetwork                       0x370434b0 URLConnectionClient::ClientConnectionEventQueue::processAllEventsAndConsumePayload(XConnectionEventInfo<XClientEvent, XClientEventParams>*, long) + 436
17  CFNetwork                       0x37043592 URLConnectionClient::ClientConnectionEventQueue::processAllEventsAndConsumePayload(XConnectionEventInfo<XClientEvent, XClientEventParams>*, long) + 662
18  CFNetwork                       0x3704319c URLConnectionClient::processEvents() + 100
19  CFNetwork                       0x370430d2 MultiplexerSource::perform() + 150
20  CoreFoundation                  0x3738aacc __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 8
21  CoreFoundation                  0x3738a298 __CFRunLoopDoSources0 + 208
22  CoreFoundation                  0x3738903e __CFRunLoopRun + 646
23  CoreFoundation                  0x3730c49e CFRunLoopRunSpecific + 294
24  CoreFoundation                  0x3730c366 CFRunLoopRunInMode + 98
25  WebCore                         0x32cb5c9c RunWebThread(void*) + 396
26  libsystem_c.dylib               0x33c2b72e _pthread_start + 314
27  libsystem_c.dylib               0x33c2b5e8 thread_start + 0

また

Thread 2 name:  WebThread
Thread 2 Crashed:
0   JavaScriptCore                  0x35653c7c WTF::fastFree(void*) + 80
1   WebCore                         0x32d064b4 WebCore::SegmentedString::prepend(WebCore::SegmentedSubstring const&) + 136
2   WebCore                         0x32d0640e WebCore::SegmentedString::prepend(WebCore::SegmentedString const&) + 66
3   WebCore                         0x32d047a8 WebCore::(anonymous namespace)::unconsumeCharacters(WebCore::SegmentedString&, WTF::Vector<unsigned short, 10ul> const&) + 188
4   WebCore                         0x32cf023e WebCore::consumeHTMLEntity(WebCore::SegmentedString&, WTF::Vector<unsigned short, 16ul>&, bool&, unsigned short) + 1850
5   WebCore                         0x32cef9e4 WebCore::HTMLTokenizer::processEntity(WebCore::SegmentedString&) + 40
6   WebCore                         0x32cbebe8 WebCore::HTMLTokenizer::nextToken(WebCore::SegmentedString&, WebCore::HTMLToken&) + 1232
7   WebCore                         0x32d03894 WebCore::HTMLPreloadScanner::scan() + 76
8   WebCore                         0x32cebc24 WebCore::HTMLDocumentParser::append(WebCore::SegmentedString const&) + 92
9   WebCore                         0x32cbce20 WebCore::DecodedDataDocumentParser::appendBytes(WebCore::DocumentWriter*, char const*, int, bool) + 200
10  WebCore                         0x32ceb8d0 WebCore::DocumentWriter::addData(char const*, int, bool) + 48
11  WebCore                         0x32ce5c3e WebCore::DocumentLoader::commitData(char const*, int) + 122
12  WebKit                          0x358cbc9a -[WebHTMLRepresentation receivedData:withDataSource:] + 158
13  WebKit                          0x358cbb10 -[WebDataSource(WebInternal) _receivedData:] + 164
14  WebKit                          0x358cba48 WebFrameLoaderClient::committedLoad(WebCore::DocumentLoader*, char const*, int) + 100
15  WebCore                         0x32ce2a48 WebCore::DocumentLoader::commitLoad(char const*, int) + 120
16  WebCore                         0x32ce29b4 WebCore::DocumentLoader::receivedData(char const*, int) + 72
17  WebCore                         0x32ce25da WebCore::ResourceLoader::didReceiveData(char const*, int, long long, bool) + 34
18  WebCore                         0x32ce2566 WebCore::MainResourceLoader::didReceiveData(char const*, int, long long, bool) + 474
19  WebCore                         0x32ce22b2 WebCore::ResourceLoader::didReceiveData(WebCore::ResourceHandle*, char const*, int, int) + 42
20  WebCore                         0x32ce2276 WebCore::ResourceHandle::handleDataArray(__CFArray const*) + 278
21  WebCore                         0x32ce2156 WebCore::didReceiveDataArray(_CFURLConnection*, __CFArray const*, void const*) + 34
22  CFNetwork                       0x370dd058 URLConnectionClient::_clientDidReceiveData(__CFArray const*, URLConnectionClient::ClientConnectionEventQueue*) + 220
23  CFNetwork                       0x370434b0 URLConnectionClient::ClientConnectionEventQueue::processAllEventsAndConsumePayload(XConnectionEventInfo<XClientEvent, XClientEventParams>*, long) + 436
24  CFNetwork                       0x3704319c URLConnectionClient::processEvents() + 100
25  CFNetwork                       0x370430d2 MultiplexerSource::perform() + 150
26  CoreFoundation                  0x3738aacc __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 8
27  CoreFoundation                  0x3738a32e __CFRunLoopDoSources0 + 358
28  CoreFoundation                  0x3738903e __CFRunLoopRun + 646
29  CoreFoundation                  0x3730c49e CFRunLoopRunSpecific + 294
30  CoreFoundation                  0x3730c366 CFRunLoopRunInMode + 98
31  WebCore                         0x32cb5c9c RunWebThread(void*) + 396
32  libsystem_c.dylib               0x33c2b72e _pthread_start + 314
33  libsystem_c.dylib               0x33c2b5e8 thread_start + 0
4

1 に答える 1

0

WebThread は WebKit によって管理され、開発者が所有するコードはそこで実行されません。新しい iOS ファームウェアで再現できるのだろうか?これについてレーダーレポートを提出できます。

于 2012-08-12T16:44:50.630 に答える