### 2.5 Options for debugging your program or GNU Fortran

GNU Fortran has various special options that are used for debugging either your program or the GNU Fortran compiler.

`-fdump-fortran-original`
  Output the internal parse tree after translating the source program into internal representation. Only really useful for debugging the GNU Fortran compiler itself.
`-fdump-fortran-optimized`
  Output the parse tree after front-end optimization. Only really useful for debugging the GNU Fortran compiler itself.
`-fdump-parse-tree`
  Output the internal parse tree after translating the source program into internal representation. Only really useful for debugging the GNU Fortran compiler itself. This option is deprecated; use `-fdump-fortran-original` instead.
`-ffpe-trap=`list
  Specify a list of floating point exception traps to enable. On most systems, if a floating point exception occurs and the trap for that exception is enabled, a SIGFPE signal will be sent and the program being aborted, producing a core file useful for debugging. list is a (possibly empty) comma-separated list of the following exceptions: ‘`invalid`’ (invalid floating point operation, such as `SQRT(-1.0)`), ‘`zero`’ (division by zero), ‘`overflow`’ (overflow in a floating point operation), ‘`underflow`’ (underflow in a floating point operation), ‘`inexact`’ (loss of precision during operation), and ‘`denormal`’ (operation performed on a denormal value). The first five exceptions correspond to the five IEEE 754 exceptions, whereas the last one (‘`denormal`’) is not part of the IEEE 754 standard but is available on some common architectures such as x86.

  The first three exceptions (‘`invalid`’, ‘`zero`’, and ‘`overflow`’) often indicate serious errors, and unless the program has provisions for dealing with these exceptions, enabling traps for these three exceptions is probably a good idea.

  Many, if not most, floating point operations incur loss of precision due to rounding, and hence the `ffpe-trap=inexact` is likely to be uninteresting in practice.

  By default no exception traps are enabled.

`-fno-backtrace`
  When a serious runtime error is encountered or a deadly signal is emitted (segmentation fault, illegal instruction, bus error, floating-point exception, and the other POSIX signals that have the action ‘`core`’), the Fortran runtime library tries to output a backtrace of the error. `-fno-backtrace` disables the backtrace generation. This option only has influence for compilation of the Fortran main program.

See Options for Debugging Your Program or GCC, for more information on debugging options.