NSException callStackSymbols

При возникновении исключения возникает трассировка стека такого типа:

2 CoreFoundation 0x013bd1cc -[__NSArrayI objectAtIndex:] + 236
3 –ò–°–≠–î 0x0000ac76 -[ContentButton handleGesture:] + 326
4 UIKit 0x00de24f2 -[UIGestureRecognizer _updateGestureWithEvent:] + .730
..

Я вижу, что это исключение произошло, когда я пытаюсь получить objectAtIndex: в NSArray в моем пользовательском классе ContentButton в методе handleGesture:.

Но что означают эти цифры после сообщения (например, +236)?

В трассировке стека java это означает номер строки, в которой произошло исключение (насколько я знаю). но сообщение [__NSArrayI objectAtIndex:] отправлено в строке 47 (не 236).

Большое спасибо.


person Gusev Andrey    schedule 19.09.2011    source источник
comment
+236 означает смещение в байтах от начала метода в двоичном коде.   -  person VenoMKO    schedule 03.05.2017


Ответы (1)


С WWDC 2010 есть отличное видео о том, как понимать отчеты о сбоях.

Вы можете найти его здесь (требуется вход в Apple Developer)

person Simon    schedule 19.09.2011
comment
До сих пор не знаю, что означают эти цифры. В видео было сказано, что XCode символизирует собой любые отчеты о сбоях, но это не так - все равно получаю +236-подобные добавления к имени сообщения и до сих пор не знаю, что это такое. - person Gusev Andrey; 26.09.2011
comment
@GusevAndrey Я тоже в замешательстве. Насколько я могу судить, это количество номеров строк ниже объявления метода в ассемблерном коде. Не очень полезно, если вы точно не знаете, как каждая строка вашего класса транслируется в Ассемблер и как компилятор связывает переменные. - person Ky Leggiero; 28.07.2015