我最近设置了Hoptoad来捕获我的iphone应用程序错误消息。这是一个例子,但我不知道如何理解错误实际发生的位置(它是在应用程序启动时触发的)。
标题错误消息为HTSignalRaisedException: Application received signal SIGBUS
身体是
CoreFoundation:0:in `0x01256bcc __exceptionPreprocess + 156'
libobjc.A.dylib:1:in `0x013ab5c2 objc_exception_throw + 47'
CoreFoundation:2:in `0x0120f628 +[NSException raise:format:arguments:] + 136'
CoreFoundation:3:in `0x0120f59a +[NSException raise:format:] + 58'
cooking:4:in `timer 0x0001a3ac HTHandleSignal + 174'
libSystem.B.dylib:5:in `0x908dc46b _sigtramp + 43'
0xffffffff:6:in `0x0 + 4294967295'
Foundation:7:in `0x00d557a5 __NSFireTimer + 125'
CoreFoundation:8:in `0x01237fe3 __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__ + 19'
CoreFoundation:9:in `0x01239594 __CFRunLoopDoTimer + 1220'
CoreFoundation:10:in `0x01195cc9 __CFRunLoopRun + 1817'
CoreFoundation:11:in `0x01195240 CFRunLoopRunSpecific + 208'
CoreFoundation:12:in `0x01195161 CFRunLoopRunInMode + 97'
GraphicsServices:13:in `0x014ca268 GSEventRunModal + 217'
GraphicsServices:14:in `0x014ca32d GSEventRun + 115'
UIKit:15:in `0x0006442e UIApplicationMain + 1160'
cooking:16:in `timer 0x00001cf8 main + 102'
cooking:17:in `timer 0x00001c89 start + 53'
我只是看不出错误在哪里。我假设它是在代码的末尾?这些名称都不是我所拥有的任何功能的参考!
非常感谢帮助!
答案 0 :(得分:0)
目前尚不清楚你是否熟悉堆栈跟踪,所以请原谅我这条旧消息。
第一行是应用程序到达的行,下一行是调用它的行等。在底部,您可以看到start,即应用程序的入口点。你可以看到start函数调用你的main函数。
您无法识别任何函数名称的原因是因为您在NSTimer回调中崩溃,或者使用NSTimer作为延迟机制的其他一些延迟调用。
不幸的是,堆栈跟踪无法告诉您创建计时器的位置或内容。但是我很确定如果calback选择器出错了你会在堆栈跟踪中看到一个doesNotRecognizeSelector行 - 所以我会猜测回调的目标已经被释放了..