Я знаю, что это довольно расплывчатый вопрос, но во время выполнения отладки приложение, над которым я работаю, умирает без какой-либо трассировки стека или предупреждения и просто с этим сообщением в консоли отладки:
Программа получила сигнал: «SIGKILL».
У меня есть NSZombieEnabled, NSDebugEnabled, MallocStackLoggingNotCompact и MallocStackLogging, все установлено в XCode.
Я запустил инструменты для проверки утечек памяти, о которых не сообщалось.
Последнее место, куда я могу перейти с отладчиком после того, как он сообщает, что «GDB: Interrupted» - это фрагмент кода, в котором вызывается NSLogv:
+ (void)print:(NSString *)format, ...
{
va_list args;
va_start(args, format);
// Doesn't seem to go past this line
NSLogv(format, args);
va_end(args);
}
Но этот метод вызывается много раз по всему приложению, и никаких проблем нигде нет, до тех пор, пока я не использую приложение достаточно долго.
Стек, показанный отладчиком после этого:
#0 0x02592e07 in ___forwarding___
#1 0x02592cd2 in __forwarding_prep_0___
#2 0x000ce57f in _NSDescriptionWithLocaleFunc
#3 0x0260b00d in __CFStringAppendFormatCore
#4 0x02552f87 in _CFStringCreateWithFormatAndArgumentsAux
#5 0x025da36e in _CFLogvEx
#6 0x0014beb5 in NSLogv
При повторном тестировании снова и снова SIGKILL постоянно происходит с вызовом NSLogv и больше нигде.
Что еще можно включить или настроить, чтобы выяснить, почему отладчик завершает работу экземпляра приложения?