альтернативы это не делать защиту и просто дать программе закораптить память (в итоге — stack clashing). Или фрейм стека открывать сразу на хипе (убьет производительность).
про abort я так понимаю это про мой кейс? Я так понимаю, там нету вызова abort как такового. Это просто OS X / мой шел так пишет. Кроме того, в моем случае core dump'а небыло.
В любом случае, это все зависит от системы, как она ловит ошибки доступа в целом или как она ловит ошибки доступа к стеку в частности. Как я уже замечал, у системы вообще возможно не будет возможности отловить такую проблему (представьте себе маленький микроконтролер без MMU или просто WASM ) )
вообще, как я понял, вопрос был в том почему в одних случаях программа перехватывает сигнал, пишет красивое "Чао" в виде "thread 'main' has overflowed its stack fatal runtime error: stack overflow Aborted" и крэшится, а на некоторых системах просто валится с выводом стандартного "Segmentation fault".
Обсуждают сегодня