Обработка скрытых ошибок Цель C - PullRequest
5 голосов
/ 02 сентября 2011

Мы все сталкивались с очевидными и сложными ошибками.В настоящее время я программирую приложение для iPad.Пару раз я сталкивался с ошибками, которые действительно довольно сложно отследить.Даже при использовании

NSUncaughtExceptionHandler();

и других вызовов обработки ошибок.У меня вопрос, когда вы попробовали все очевидные методы, чтобы отследить ошибку, и ваше приложение не работает без видимой причины.Как лучше поступить и каковы лучшие методы обработки ошибок?

консольный вывод

Current language:  auto; currently objective-c
kill
error while killing target (killing anyway): warning: error on line 2184 of    "/SourceCache/gdb/gdb-1708/src/gdb/macosx/macosx-nat-inferior.c" in function "void macosx_kill_inferior_safe()": (os/kern) failure (0x5x)
quit
Program ended with exit code: 0

Ответы [ 2 ]

7 голосов
/ 02 сентября 2011

Это сбой / ошибка отладчика, а не ваше приложение. Ничто из того, что вы можете сделать в камере приложения, не уловит этого.

Однако, вероятно, что-то в вашем приложении сорвалось с рельсов, что привело к выходу из строя отладчика.

Возможно, вы повреждаете или исчерпываете память, например.

Кроме того, последние версии инструментов, поскольку отладчик, как правило, содержат исправления ошибок, которые улучшают его поведение в случае катастрофического неполноценного сбоя.

1 голос
/ 23 февраля 2012

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

@property (nonatomic, copy) IBOutlet UILabel *dateLabel;

Iизменил «копию» на «слабый» и проблема решена.перешел на перепроверку, и это определенно был виновник.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...