2013-05-07 1 views
1

_WebTryThreadLock의 예외 (0xbbadbeef는 항상 WebThread의 스레드 # 2)입니다. 일반적으로 크래시는 우리 코드와 관련이없는 다른 스레드 (주 스레드 포함)를 포함합니다. 우리는 내부적으로 그것을 재현 할 수 없다. 우리는 코드에서 다른 스레드의 UIWebView를 사용하는 경우를 살펴 보았지만 아무 것도 발견하지 못했습니다. 해방되기 전에 항상 webview의 델리게이트를 설정 해제합니다.WebTryThreadLock 스레드 크래시 0xbbadbeef

우리는 모든 종류의 장치와 어떤 iOS 버전 (5.x-current 범위에서)을 볼 수있는 것으로부터 이것을 봅니다. 로그를 기반으로하면 응용 프로그램이 백그라운드에서 다시 시작될 때 주로 발생하는 것처럼 보입니다. 내 프로젝트의 현재 경험 당

Exception Type: EXC_BAD_ACCESS (SIGSEGV) 
Exception Codes: KERN_INVALID_ADDRESS at 0xbbadbeef 
Crashed Thread: 2 

Thread 0 name: Dispatch queue: com.apple.root.default-priority 
Thread 0: 
0 libsystem_kernel.dylib    0x328e31d4 madvise + 8 
1 ImageIO        0x3306c550 CGImageRead_willNeed + 52 
2 ImageIO        0x331bcd98 __copyImageBlockSetPNG_block_invoke_0 + 476 
3 libdispatch.dylib     0x35d03a68 _dispatch_apply_serial + 16 
4 libdispatch.dylib     0x35cf44b4 _dispatch_client_callout + 20 
5 libdispatch.dylib     0x35d02886 _dispatch_sync_f_invoke + 22 
6 ImageIO        0x331bb446 copyImageBlockSetPNG + 2102 
7 ImageIO        0x3306b53e ImageProviderCopyImageBlockSetCallback + 510 
8 CoreGraphics      0x33fc59d6 CGImageProviderCopyImageBlockSetWithOptions + 158 
9 QuartzCore       0x3a4f474c CA::Render::create_image(CGImage*, CGColorSpace*, unsigned int) + 668 
10 QuartzCore       0x3a4f433a CA::Render::copy_image(CGImage*, CGColorSpace*, unsigned int, double) + 254 
11 QuartzCore       0x3a4f4226 CA::Render::prepare_image(CGImage*, CGColorSpace*, unsigned int, double) + 14 
12 QuartzCore       0x3a4e2af0 CA::Layer::prepare_commit(CA::Transaction*) + 416 
13 QuartzCore       0x3a4e221e CA::Context::commit_transaction(CA::Transaction*) + 242 
14 QuartzCore       0x3a4e2024 CA::Transaction::commit() + 312 
15 UIKit        0x3af260b6 -[UIApplication _reportAppLaunchFinished] + 38 
[...] 

Thread 2 name: WebThread 
Thread 2 Crashed: 
0 WebCore        0x379a99ca _WebTryThreadLock(bool) + 298 
1 WebCore        0x379a988a WebRunLoopLock(__CFRunLoopObserver*, unsigned long, void*) + 42 
2 CoreFoundation      0x336da6ca __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 18 
3 CoreFoundation      0x336d89bc __CFRunLoopDoObservers + 272 
4 CoreFoundation      0x336d8c8c __CFRunLoopRun + 604 
5 CoreFoundation      0x3364beb8 CFRunLoopRunSpecific + 352 
6 CoreFoundation      0x3364bd44 CFRunLoopRunInMode + 100 
7 WebCore        0x379a7a40 RunWebThread(void*) + 440 
8 libsystem_c.dylib     0x35d3e30e _pthread_start + 306 
9 libsystem_c.dylib     0x35d3e1d4 thread_start + 4 

[...] 

Thread 5 name: JavaScriptCore::BlockFree 
Thread 5: 
0 libsystem_kernel.dylib    0x328f308c __psynch_cvwait + 24 
1 libsystem_c.dylib     0x35d36d2a _pthread_cond_wait + 642 
2 libsystem_c.dylib     0x35d36aa0 pthread_cond_timedwait + 40 
3 JavaScriptCore      0x39b67c70 WTF::ThreadCondition::timedWait(WTF::Mutex&, double) + 104 
4 JavaScriptCore      0x39c79552 JSC::BlockAllocator::blockFreeingThreadMain() + 78 
5 JavaScriptCore      0x39c8bfa8 WTF::wtfThreadEntryPoint(void*) + 12 
6 libsystem_c.dylib     0x35d3e30e _pthread_start + 306 
7 libsystem_c.dylib     0x35d3e1d4 thread_start + 4 

Thread 6 name: WebCore: CFNetwork Loader 
Thread 6: 
0 libsystem_kernel.dylib    0x328e2eb4 mach_msg_trap + 20 
1 libsystem_kernel.dylib    0x328e3048 mach_msg + 36 
2 CoreFoundation      0x336da040 __CFRunLoopServiceMachPort + 124 
3 CoreFoundation      0x336d8d9e __CFRunLoopRun + 878 
4 CoreFoundation      0x3364beb8 CFRunLoopRunSpecific + 352 
5 CoreFoundation      0x3364bd44 CFRunLoopRunInMode + 100 
6 WebCore        0x37a42f6a WebCore::runLoaderThread(void*) + 138 
7 JavaScriptCore      0x39c8bfa8 WTF::wtfThreadEntryPoint(void*) + 12 
8 libsystem_c.dylib     0x35d3e30e _pthread_start + 306 
9 libsystem_c.dylib     0x35d3e1d4 thread_start + 4 

답변

1

,이 때문에 우리가 해결하려고하는 GWT 응용 프로그램의 메모리 누수에 메모리 부족 웹킷의 예입니다.