Я отлаживаю большую числовую программу, к которой я добавил. Он написан в fortran90, скомпилирован с gfortran (последняя версия доступна для Mac), и я отлаживаю его с помощью gdb (опять же последней версии для Mac).
В моих добавлениях есть ошибка, и я пытаюсь найти ее, что ясно, так как запуск программы не дает ожидаемого результата. Когда я запускаю его в gdb, я получаю следующий вывод в конце:
Note: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG IEEE_DIVIDE_BY_ZERO IEEE_UNDERFLOW_FLAG IEEE_DENORMAL
[Inferior 1 (process 83843) exited normally]
Я хотел бы точно определить, где именно происходит этот FPE, но кажется, что исключение с плавающей запятой не приводит к сбою программы. Я проверил это, явно разделив на 0 в моем коде - это не заставило программу перестать работать, но привело к неожиданному поведению.
Каков правильный флаг для gdb или gfortran, чтобы гарантировать, что программа перестанет работать (в идеале, с backtrace), когда она достигнет исключения с плавающей запятой? Я пробовал следовать инструкциям здесь, но он ничего не изменил.