Полагаю, у меня нет кармы, чтобы добавить комментарий к ответу Нимрода Гата, поэтому я должен предоставить свое продолжение здесь.Я постараюсь сделать его достойным отдельного ответа.
Очень, очень трудно написать безопасный, корректный и надежный репортер сбоев, особенно тот, который работает непосредственно в процессе,Код, указанный в ответе Нимрода Гата, неверен и, честно говоря, этот пост должен быть отозван.Обработчики сигналов должны выполнять только асинхронный код, и этот код не является асинхронным:
http://www.cocoadev.com/index.pl?SignalSafety
Обработка сбоев еще сложнее, чем обычная обработка сигналов, потому что вы можетеНе ожидайте, что процесс продолжит успешно выполняться после того, как ваш обработчик сигнала вернется.
Соблазнительно думать, что вы можете просто взломать более простое решение, и оно будет работать некоторое время, но есть веская причина, людикак у инженеров Google есть тысячи LoC, предназначенных для надежных отчетов о сбоях:
http://code.google.com/p/google-breakpad/
В iOS вам просто нужно использовать PLCrashReporter.На других платформах (таких как Mac OS X) вы должны использовать Google Breakpad.Нет смысла заново изобретать это колесо, если вы не собираетесь делать это не только правильно, но и лучше, чем то, что уже существует.