Я использую обработчики сигналов в приложении Objective C для обнаружения фатальных ошибок, таких как SIGSEGV
, SIGBUS
и т. П.
Когда появляется такой сигнал, я пишу файл журнала с обратным следом и подробностями об ошибке (я знаю, что у меня могут быть проблемы с повторным входом, но это не главное).
Таким образом, при следующем запуске я могу узнать, что приложение упало, и я могу спросить пользователя, хочет ли он заполнить отчет об ошибке.
Работает нормально, когда я запускаю приложение вручную.
Но когда я запускаю его из Xcode (с GDB), обработчики сигналов не вызываются.
Я пытаюсь установить их с помощью signal
или sigaction
, но нет никакой разницы.
Я также проверил с помощью info signals
, что эти сигналы установлены на pass
, что означает, что они должны быть переданы приложению.
Это не имеет большого значения, так как у меня возникла эта проблема только при отладке моего приложения, но было бы очень хорошо, чтобы это работало и с GDB.
Кто-нибудь испытывал и решал такую проблему?