2.5 Параметры для отладки программы
GNU Fortran имеет различные специальные параметры, используемые для отладки программы.
-
-fdebug-aux-vars -
Переименовывает внутренние переменные, созданные фронт-эндом gfortran, и делает их доступными для отладчика. Имена внутренних переменных затем начинаются с заглавных букв, за которыми следует знак подчеркивания. Этот параметр полезен для отладки генерации кода компилятором вместе с
-fdump-tree-originalи включением отладки исполняемого файла с помощью-gили-ggdb3. -
-ffpe-trap=list -
Указывает список ловушек исключений с плавающей запятой для включения. На большинстве систем, если возникает исключение с плавающей запятой и ловушка для этого исключения включена, будет отправлен сигнал SIGFPE, и программа будет прервана, создав дамп памяти, полезный для отладки. list — это (возможно, пустой) список, разделенный запятыми, содержащий либо ‘none’ (для очистки набора исключений, которые должны отлавливаться), либо следующие исключения: ‘invalid’ (неверное операция с плавающей запятой, например,
SQRT(-1.0)), ‘zero’ (деление на ноль), ‘overflow’ (переполнение в операции с плавающей запятой), ‘underflow’ (потерь в операции с плавающей запятой), ‘inexact’ (потеря точности во время операции) и ‘denormal’ (операция, выполненная над значениями с пониженной точностью). Первые пять исключений соответствуют пяти исключениям IEEE 754, а последнее (‘denormal’) не входит в стандарт IEEE 754, но доступно на некоторых распространенных архитектурах, таких как x86.Первые три исключения (‘invalid’, ‘zero’ и ‘overflow’) часто указывают на серьезные ошибки, и если программа не предусматривает обработку этих исключений, включение ловушек для этих трех исключений, вероятно, будет хорошей идеей.
Если параметр используется несколько раз в командной строке, списки будут объединены: ‘
ffpe-trap=list1ffpe-trap=list2’ эквивалентноffpe-trap=list1,list2.Обратите внимание, что после включения исключение нельзя отключить (нет отрицательной формы), за исключением очистки всех ловушек путем указания ‘none’.
Многие, если не большинство, операции с плавающей запятой приводят к потере точности из-за округления, и поэтому
ffpe-trap=inexactскорее всего, будет неинтересным на практике.По умолчанию ловушки исключений не включены.
-
-ffpe-summary=list -
Указывает список исключений с плавающей запятой, статус флага которых выводится в
ERROR_UNITпри вызовеSTOPиERROR STOP. list может быть либо ‘none’, ‘all’, либо список, разделенный запятыми, следующих исключений: ‘invalid’, ‘zero’, ‘overflow’, ‘underflow’, ‘inexact’ и ‘denormal’. (См. -ffpe-trap для описания исключений.)Если параметр используется несколько раз в командной строке, будет использоваться только последний.
По умолчанию отображается сводка для всех исключений, кроме ‘inexact’.
-
-fno-backtrace -
При возникновении серьезной ошибки во время выполнения или выводе смертельного сигнала (ошибка сегментации, незаконная инструкция, ошибка шины, исключение с плавающей запятой и другие сигналы POSIX, у которых действие ‘core’), библиотека времени выполнения Fortran пытается вывести трассировку стека ошибки.
-fno-backtraceотключает генерацию трассировки стека. Этот параметр влияет только на компиляцию основной программы Fortran.
См. Параметры для отладки программы или GCC в Руководстве по использованию GNU компилятора (GCC), для получения дополнительной информации о параметрах отладки.
© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-14.2.0/gfortran/Debugging-Options.html