2.5 Параметры отладки вашей программы или GNU Fortran
GNU Fortran имеет различные специальные параметры, используемые для отладки вашей программы или компилятора GNU Fortran.
-
-fdump-fortran-original -
Выводит внутреннее дерево разбора после преобразования исходной программы во внутреннее представление. Этот параметр в основном полезен для отладки самого компилятора GNU Fortran. Вывод, генерируемый этим параметром, может изменяться между выпусками. Этот параметр также может генерировать внутренние ошибки компилятора для функций, которые были добавлены совсем недавно.
-
-fdump-fortran-optimized -
Выводит дерево разбора после оптимизации на стадии фронтенда. В основном полезно для отладки самого компилятора GNU Fortran. Вывод, генерируемый этим параметром, может изменяться между выпусками. Этот параметр также может генерировать внутренние ошибки компилятора для функций, которые были добавлены совсем недавно.
-
-fdump-parse-tree -
Выводит внутреннее дерево разбора после преобразования исходной программы во внутреннее представление. В основном полезно для отладки самого компилятора GNU Fortran. Вывод, генерируемый этим параметром, может изменяться между выпусками. Этот параметр также может генерировать внутренние ошибки компилятора для функций, которые были добавлены совсем недавно. Этот параметр устарел; используйте
-fdump-fortran-originalвместо него. -
-fdebug-aux-vars -
Переименовывает внутренние переменные, созданные фронтендом gfortran, и делает их доступными для отладчика. Имена внутренних переменных затем начинаются с заглавных букв, за которыми следует символ подчеркивания. Этот параметр полезен для отладки кодогенерации компилятора вместе с
-fdump-tree-originalи включения отладки исполняемого файла с использованием-gили-ggdb3. -
-fdump-fortran-global -
Выводит список глобальных идентификаторов после преобразования во внутреннее представление на стадии мидденда. В основном полезно для отладки самого компилятора GNU Fortran. Вывод, генерируемый этим параметром, может изменяться между выпусками. Этот параметр также может генерировать внутренние ошибки компилятора для функций, которые были добавлены совсем недавно.
-
-ffpe-trap=list -
Указывает список ловушек исключений с плавающей запятой для включения. На большинстве систем, если возникает исключение с плавающей запятой, и ловушка для этого исключения включена, будет отправлен сигнал SIGFPE, и программа будет прервана, создав дамп памяти, полезный для отладки. list — это (возможно, пустой) список, разделенный запятыми, следующих исключений: ‘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.Обратите внимание, что после включения исключение отключить нельзя (нет отрицательной формы).
Многие, если не большинство, операции с плавающей запятой приводят к потере точности из-за округления, поэтому
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 Compiler Collection (GCC), для получения дополнительной информации о параметрах отладки.
© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-13.3.0/gfortran/Debugging-Options.html