23.12 Getting Internal Debugging Information
Most compilers have internal debugging switches and modes. GNAT
does also, except GNAT internal debugging switches and modes are not
secret. A summary and full description of all the compiler and binder
debug flags are in the file `debug.adb'. You must obtain the
sources of the compiler to see the full detailed effects of these flags.
The switches that print the source of the program (reconstructed from
the internal tree) are of general interest for user programs, as are the
options to print
the full internal tree, and the entity table (the symbol table
information). The reconstructed source provides a readable version of the
program after the front-end has completed analysis and expansion, and is useful
when studying the performance of specific constructs. For example, constraint
checks are indicated, complex aggregates are replaced with loops and
assignments, and tasking primitives are replaced with run-time calls.