Я использую NSSetUncaughtExceptionHandler
для печати трассировки стека в локальный файл на iPhone, который будет отправлен на наш сервер в следующий раз, когда приложение запустится. Затем я могу проверить данные исключения и исправить ошибку.
В некоторых авариях у меня есть имя модуля и функция, которая выбрала исключение, это легко.
Но в основном у меня есть что-то вроде этого:
"4 libc++abi.dylib 0x35bba3c5 _ZL19safe_handler_callerPFvvE + 76",
"5 libc++abi.dylib 0x35bba451 _ZdlPv + 0",
"6 libc++abi.dylib 0x35bbb825 __cxa_current_exception_type + 0",
"7 libobjc.A.dylib 0x37bab2a9 objc_exception_rethrow + 12",
"8 CoreFoundation 0x3575a50d CFRunLoopRunSpecific + 404"
и, например, причина:
*** -[__NSArrayI objectAtIndex:]: index 0 beyond bounds for empty array
но у меня есть десятки массивов в моем приложении, поэтому мне нужна помощь, чтобы найти конкретную строку, которая выбрала исключение, используя данные, которые я получаю из трассировки стека.
Кто-нибудь знает хорошую статью/учебник от Apple или другой, где я могу научиться декодировать числа в трассировке стека, чтобы найти проблемную строку в исходном коде. Спасибо заранее!