I am trying to replicate a bug in my app which is happening for users occasionally. I have the below crash report. Am I right in thinking the app is crashing due to an NSDictionary not having a value for a specific key ? And is there anything else I can deduce from the report ?
Date/Time: 2013-09-19 12:12:54.627 +0800
OS Version: iOS 6.1.3 (10B329)
Report Version: 104
Exception Type: EXC_CRASH (SIGTRAP)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Crashed Thread: 0
Last Exception Backtrace:
0 CoreFoundation 0x31bbd3e2 __exceptionPreprocess + 158
1 libobjc.A.dylib 0x39a5795e objc_exception_throw + 26
2 CoreFoundation 0x31b0e876 -[__NSPlaceholderDictionary initWithObjects:forKeys:count:] + 130
3 CoreFoundation 0x31b0e732 +[NSDictionary dictionaryWithObject:forKey:] + 46
4 MyApp 0x00103f34 -[WebViewJavascriptBridge _sendData:responseCallback:handlerName:] (WebViewJavascriptBridge.m:95)
5 MyApp 0x00103d2a -[WebViewJavascriptBridge callHandler:data:responseCallback:] (WebViewJavascriptBridge.m:67)
6 MyApp 0x00103cec -[WebViewJavascriptBridge callHandler:data:] (WebViewJavascriptBridge.m:63)
7 MyApp 0x000c3be2 -[ContractViewController updateHTML] (ContractViewController.m:293)
8 MyApp 0x000c2fec -[ContractViewController startEditableContract] (ContractViewController.m:199)
9 MyApp 0x000c2bc2 -[ContractViewController viewDidLoad] (ContractViewController.m:192)
10 UIKit 0x339eb574 -[UIViewController loadViewIfRequired] + 360
11 UIKit 0x33a401f2 -[UIViewController contentScrollView] + 22
12 UIKit 0x33a40138 -[UINavigationController _computeAndApplyScrollContentInsetDeltaForViewController:] + 24
13 UIKit 0x33a4001c -[UINavigationController _layoutViewController:] + 28
14 UIKit 0x33a3ff48 -[UINavigationController _updateScrollViewFromViewController:toViewController:] + 268
15 UIKit 0x33a3f694 -[UINavigationController _startTransition:fromViewController:toViewController:] + 60
16 UIKit 0x33a3f57c -[UINavigationController _startDeferredTransitionIfNeeded:] + 320
17 UIKit 0x33a2db56 -[UINavigationController pushViewController:transition:forceImmediate:] + 854
18 UIKit 0x33a2d7f6 -[UINavigationController pushViewController:animated:] + 34
19 MyApp 0x000b91dc -[ExhibitorDetailsViewController contractLoadButton:] (ExhibitorDetailsViewController.m:680)
20 UIKit 0x33ab7082 -[UIApplication sendAction:to:from:forEvent:] + 66
21 UIKit 0x33ab7036 -[UIApplication sendAction:toTarget:fromSender:forEvent:] + 26
22 UIKit 0x33ab7010 -[UIControl sendAction:to:forEvent:] + 40
23 UIKit 0x33ab68c6 -[UIControl(Internal) _sendActionsForEvents:withEvent:] + 498
24 UIKit 0x33ab6db4 -[UIControl touchesEnded:withEvent:] + 484
25 UIKit 0x339df5f4 -[UIWindow _sendTouchesForEvent:] + 520
26 UIKit 0x339cc8dc -[UIApplication sendEvent:] + 376
27 UIKit 0x339cc1ea _UIApplicationHandleEvent + 6194
28 GraphicsServices 0x356c05f2 _PurpleEventCallback + 586
29 GraphicsServices 0x356c0222 PurpleEventCallback + 30
30 CoreFoundation 0x31b923e2 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 30
31 CoreFoundation 0x31b92386 __CFRunLoopDoSource1 + 134
32 CoreFoundation 0x31b9120a __CFRunLoopRun + 1378
33 CoreFoundation 0x31b04238 CFRunLoopRunSpecific + 352
34 CoreFoundation 0x31b040c4 CFRunLoopRunInMode + 100
35 GraphicsServices 0x356bf336 GSEventRunModal + 70
36 UIKit 0x33a202b4 UIApplicationMain + 1116
37 MyApp 0x00095e02 main (main.m:15)
38 libdyld.dylib 0x39e84b1c start + 0
Thread 0 name: Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0 libsystem_kernel.dylib 0x39f4a838 __kill + 8
1 MyApp 0x00107ed0 TFHandleExceptions + 988
2 CoreFoundation 0x31bbd6cc __handleUncaughtException + 624
3 libobjc.A.dylib 0x39a57a46 _objc_terminate() + 126
4 libc++abi.dylib 0x394a4118 safe_handler_caller(void (*)()) + 76
5 libc++abi.dylib 0x394a41b0 std::terminate() + 16
6 libc++abi.dylib 0x394a5626 __cxa_rethrow + 90
7 libobjc.A.dylib 0x39a579b0 objc_exception_rethrow + 8
8 CoreFoundation 0x31b0429c CFRunLoopRunSpecific + 452
9 CoreFoundation 0x31b040c4 CFRunLoopRunInMode + 100
10 GraphicsServices 0x356bf336 GSEventRunModal + 70
11 UIKit 0x33a202b4 UIApplicationMain + 1116
12 MyApp 0x00095e02 main (main.m:15)
13 libdyld.dylib 0x39e84b1c start + 0
Thread 1 name: Dispatch queue: com.apple.libdispatch-manager
Thread 1:
0 libsystem_kernel.dylib 0x39f3b5d0 kevent64 + 24
1 libdispatch.dylib 0x39e76d22 _dispatch_mgr_invoke + 806
2 libdispatch.dylib 0x39e72374 _dispatch_mgr_thread + 32
Thread 2 name: WebThread
Thread 2:
0 libsystem_kernel.dylib 0x39f4b0fc __psynch_mutexwait + 24
1 libsystem_c.dylib 0x39e93e66 pthread_mutex_lock + 390
2 WebCore 0x37aea2b8 _WebTryThreadLock(bool) + 184
3 WebCore 0x37aea1e8 WebRunLoopLock(__CFRunLoopObserver*, unsigned long, void*) + 40
4 CoreFoundation 0x31b9293e __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 18
5 CoreFoundation 0x31b90c34 __CFRunLoopDoObservers + 272
6 CoreFoundation 0x31b91076 __CFRunLoopRun + 974
7 CoreFoundation 0x31b04238 CFRunLoopRunSpecific + 352
8 CoreFoundation 0x31b040c4 CFRunLoopRunInMode + 100
9 WebCore 0x37ae8390 RunWebThread(void*) + 440
10 libsystem_c.dylib 0x39ea40de _pthread_start + 306
11 libsystem_c.dylib 0x39ea3fa4 thread_start + 4
Thread 3 name: com.apple.NSURLConnectionLoader
Thread 3:
0 libsystem_kernel.dylib 0x39f3ae30 mach_msg_trap + 20
1 libsystem_kernel.dylib 0x39f3afd0 mach_msg + 48
2 CoreFoundation 0x31b922b6 __CFRunLoopServiceMachPort + 126
3 CoreFoundation 0x31b9102c __CFRunLoopRun + 900
4 CoreFoundation 0x31b04238 CFRunLoopRunSpecific + 352
5 CoreFoundation 0x31b040c4 CFRunLoopRunInMode + 100
6 Foundation 0x32451888 +[NSURLConnection(Loader) _resourceLoadLoop:] + 304
7 Foundation 0x324d522c __NSThread__main__ + 968
8 libsystem_c.dylib 0x39ea40de _pthread_start + 306
9 libsystem_c.dylib 0x39ea3fa4 thread_start + 4
Thread 4:
0 libsystem_kernel.dylib 0x39f3ae30 mach_msg_trap + 20
1 libsystem_kernel.dylib 0x39f3afd0 mach_msg + 48
2 CoreFoundation 0x31b922b6 __CFRunLoopServiceMachPort + 126
3 CoreFoundation 0x31b9102c __CFRunLoopRun + 900
4 CoreFoundation 0x31b04238 CFRunLoopRunSpecific + 352
5 CoreFoundation 0x31b040c4 CFRunLoopRunInMode + 100
6 Foundation 0x324285be -[NSRunLoop(NSRunLoop) runMode:beforeDate:] + 250
7 Foundation 0x324cbc40 -[NSRunLoop(NSRunLoop) run] + 76
8 MyApp 0x0011cf4c -[TFNetworkManager networkRunLoopThreadEntry] + 120
9 Foundation 0x324d522c __NSThread__main__ + 968
10 libsystem_c.dylib 0x39ea40de _pthread_start + 306
11 libsystem_c.dylib 0x39ea3fa4 thread_start + 4
Thread 5 name: com.apple.CFSocket.private
Thread 5:
0 libsystem_kernel.dylib 0x39f4b594 __select + 20
1 CoreFoundation 0x31b96474 __CFSocketManager + 676
2 libsystem_c.dylib 0x39ea40de _pthread_start + 306
3 libsystem_c.dylib 0x39ea3fa4 thread_start + 4
Thread 6 name: JavaScriptCore::BlockFree
Thread 6:
0 libsystem_kernel.dylib 0x39f4b08c __psynch_cvwait + 24
1 libsystem_c.dylib 0x39e9cafc _pthread_cond_wait + 644
2 libsystem_c.dylib 0x39e9c870 pthread_cond_timedwait + 40
3 JavaScriptCore 0x35ab5df6 WTF::ThreadCondition::timedWait(WTF::Mutex&, double) + 102
4 JavaScriptCore 0x35bc8532 JSC::BlockAllocator::blockFreeingThreadMain() + 78
5 JavaScriptCore 0x35bdb030 WTF::wtfThreadEntryPoint(void*) + 12
6 libsystem_c.dylib 0x39ea40de _pthread_start + 306
7 libsystem_c.dylib 0x39ea3fa4 thread_start + 4
Thread 7 name: JavaScriptCore::Marking
Thread 7:
0 libsystem_kernel.dylib 0x39f4b08c __psynch_cvwait + 24
1 libsystem_c.dylib 0x39e9cafc _pthread_cond_wait + 644
2 libsystem_c.dylib 0x39ea6cf8 pthread_cond_wait + 36
3 JavaScriptCore 0x35b5b6dc JSC::SlotVisitor::drainFromShared(JSC::SlotVisitor::SharedDrainMode) + 140
4 JavaScriptCore 0x35b5b620 JSC::MarkStackThreadSharedData::markingThreadMain() + 140
5 JavaScriptCore 0x35bdb030 WTF::wtfThreadEntryPoint(void*) + 12
6 libsystem_c.dylib 0x39ea40de _pthread_start + 306
7 libsystem_c.dylib 0x39ea3fa4 thread_start + 4
Thread 8:
0 libsystem_kernel.dylib 0x39f3ae30 mach_msg_trap + 20
1 libsystem_kernel.dylib 0x39f3afd0 mach_msg + 48
2 CoreFoundation 0x31b922b6 __CFRunLoopServiceMachPort + 126
3 CoreFoundation 0x31b9102c __CFRunLoopRun + 900
4 CoreFoundation 0x31b04238 CFRunLoopRunSpecific + 352
5 CoreFoundation 0x31b040c4 CFRunLoopRunInMode + 100
6 Foundation 0x324285be -[NSRunLoop(NSRunLoop) runMode:beforeDate:] + 250
7 Foundation 0x324cbc40 -[NSRunLoop(NSRunLoop) run] + 76
8 MyApp 0x0012e308 +[AFURLConnectionOperation networkRequestThreadEntryPoint:] + 120
9 Foundation 0x324d522c __NSThread__main__ + 968
10 libsystem_c.dylib 0x39ea40de _pthread_start + 306
11 libsystem_c.dylib 0x39ea3fa4 thread_start + 4
Thread 9:
0 libsystem_kernel.dylib 0x39f4bd98 __workq_kernreturn + 8
1 libsystem_c.dylib 0x39e99ad6 _pthread_workq_return + 14
2 libsystem_c.dylib 0x39e997f2 _pthread_wqthread + 362
3 libsystem_c.dylib 0x39e99680 start_wqthread + 4
Thread 10:
0 libsystem_kernel.dylib 0x39f4bd98 __workq_kernreturn + 8
1 libsystem_c.dylib 0x39e99ad6 _pthread_workq_return + 14
2 libsystem_c.dylib 0x39e997f2 _pthread_wqthread + 362
3 libsystem_c.dylib 0x39e99680 start_wqthread + 4
Thread 11:
0 libsystem_kernel.dylib 0x39f4bd98 __workq_kernreturn + 8
1 libsystem_c.dylib 0x39e99ad6 _pthread_workq_return + 14
2 libsystem_c.dylib 0x39e997f2 _pthread_wqthread + 362
3 libsystem_c.dylib 0x39e99680 start_wqthread + 4
Thread 12:
0 libsystem_kernel.dylib 0x39f4bd98 __workq_kernreturn + 8
1 libsystem_c.dylib 0x39e99ad6 _pthread_workq_return + 14
2 libsystem_c.dylib 0x39e997f2 _pthread_wqthread + 362
3 libsystem_c.dylib 0x39e99680 start_wqthread + 4
Thread 0 crashed with ARM Thread State (32-bit):
r0: 0x00000000 r1: 0x00000000 r2: 0x00000001 r3: 0x3ba42fc8
r4: 0xffffffff r5: 0x2fd6c311 r6: 0x2fd6c310 r7: 0x2fd6c9e0
r8: 0x2fd6c340 r9: 0x3ba38898 r10: 0x2fd6c318 r11: 0x00000015
ip: 0x00000025 sp: 0x2fd6c2fc lr: 0x00107ed5 pc: 0x39f4a838
cpsr: 0x00080010
Code which is crashing :
- (void)_sendData:(NSDictionary *)data responseCallback:(WVJBResponseCallback)responseCallback handlerName:(NSString*)handlerName {
NSMutableDictionary* message = [NSMutableDictionary dictionaryWithObject:data forKey:@"data"];
if (responseCallback) {
NSString* callbackId = [NSString stringWithFormat:@"objc_cb_%ld", ++_uniqueId];
_responseCallbacks[callbackId] = [responseCallback copy];
message[@"callbackId"] = callbackId;
}
if (handlerName) {
message[@"handlerName"] = handlerName;
}
[self _queueMessage:message];
}
The crash happens in the file WebViewJavascriptBridge.m
in line 95
in the method [WebViewJavascriptBridge _sendData:responseCallback:handlerName:]
.
That line causes an exception in [__NSPlaceholderDictionary initWithObjects:forKeys:count:]
. Since the exception message isn't shown in the crash report, and you don't provide any source code of that place we can only assume what is happening.
One assumption would be, your are creating a dictionary with nil
values or keys. But without code or you actually debugging this, this is only an assumption.
User contributions licensed under CC BY-SA 3.0