### 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-optimized-tree`
  Output the parse tree after front-end optimization. Only really useful for debugging the GNU Fortran compiler itself.

  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.