Хм, делал кое-что с кодом, который недавно имел сигналы. Во-первых, вам нужно разобраться, как именно GDB обрабатывает сигналы. Я не уверен, что это в документации или нет, так что копаться в сети. Из того, что я помню, GDB перехватывает некоторые сигналы, чтобы отладчик мог работать должным образом. Вот почему ваше приложение не ведет себя должным образом.
Я ни в коем случае не авторитет в этом, но в коде, на который я смотрел, использование сигналов показалось неправильным. iOS SDK обладает целым рядом функций для обработки межпроцессного взаимодействия, последовательности задач и прочего. Возможно, ваш код выиграет от небольшого количества НИОКР и редизайна, поэтому вам не нужны сигналы.
Просто мысль: -)