|
я лично в Oberon/Ur на сигналы от ОС просто забил. сегфолта не должно произойти никогда, а если произошёл — там нечего ловить, там надо сразу падать: разыменование NIL проверяется кодом явно. деление на ноль тоже. любой «штатный» трап вызывает внутреннюю процедуру из Kernel, которая опционально показывает backtrace, и разматывает стек до глубины, на которой находится последний поставленый TRY (а если его нет — то собираем мусор, чтобы вызвать финализаторы, и `abort()`). поскольку у меня явный список стековых карт, то и бэктрэйсы, и разматывание стека — тривиальный поход по обычному списку.
|