我正在尝试复制我的应用中的错误,这个错误偶尔会发生在用户身上。我有以下崩溃报告。我是否认为应用程序崩溃是因为NSDictionary没有特定密钥的值?还有什么我可以从报告中推断出来的吗?
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
崩溃的代码:
- (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];
}
答案 0 :(得分:1)
崩溃发生在方法WebViewJavascriptBridge.m
的行95
中的[WebViewJavascriptBridge _sendData:responseCallback:handlerName:]
文件中。
该行导致[__NSPlaceholderDictionary initWithObjects:forKeys:count:]
中的异常。由于崩溃报告中未显示异常消息,并且您未提供该地点的任何源代码,因此我们只能假设发生了什么。
一个假设是,您正在创建一个包含nil
值或键的字典。但是没有代码或你实际调试它,这只是一个假设。