помочь понять сообщение об ошибке iPhone - PullRequest
1 голос
/ 28 ноября 2010

Я недавно настроил 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'

Я просто не вижу, где лежит ошибка. Я предполагаю, что это ближе к концу кода? Ни одно из имен не является ссылкой на любую из функций, которые у меня есть!

Помощь очень ценится!

1 Ответ

0 голосов
/ 28 ноября 2010

Непонятно, знакомы ли вы со следами стеков, так что простите, если это старые новости.

Первая строка - это строка, которой достигло приложение, следующая строка - строка, которая вызвала это и т. Д. Внизу вы можете увидеть начало, точку входа в ваше приложение. Вы можете видеть, что функция запуска вызывает вашу основную функцию.

Причина, по которой вы не можете распознать имена функций, заключается в том, что вы зависаете в обратном вызове NSTimer или каком-либо другом отложенном вызове, который использует NSTimer в качестве механизма задержки.

К сожалению, трассировка стека не сможет сказать вам, где или что создало таймер. Однако я вполне уверен, что, если селектор обратного вызова был неправильным, вы бы увидели строку didNotRecognizeSelector в трассировке стека - так что я рискнул бы предположить, что цель для обратного вызова была освобождена.

...