diff options
author | Hristian Kirtchev <kirtchev@adacore.com> | 2019-07-11 08:01:21 +0000 |
---|---|---|
committer | Pierre-Marie de Rodat <pmderodat@gcc.gnu.org> | 2019-07-11 08:01:21 +0000 |
commit | 490ed9ba846d15baba24646b7ecf3ed6b7c19fcb (patch) | |
tree | 61fa6e8e97c43d5f61918800f2d506ef1e245aaa /gcc/ada/debug.adb | |
parent | a34badbdf000e931dfa1a1291cf2739e2c75e68d (diff) | |
download | gcc-490ed9ba846d15baba24646b7ecf3ed6b7c19fcb.zip gcc-490ed9ba846d15baba24646b7ecf3ed6b7c19fcb.tar.gz gcc-490ed9ba846d15baba24646b7ecf3ed6b7c19fcb.tar.bz2 |
[Ada] Elaboration order v4.0 and infinite loops
This patch introduces binder switch -d_S which prompts the various
phases of the elaboration order mechanism to output a short message
concerning their commencement and completion. The output is useful when
trying to determine whether a phase is stuck in an infinite loop.
------------
-- Source --
------------
-- main.adb
procedure Main is begin null; end Main;
----------------------------
-- Compilation and output --
----------------------------
$ gnatmake -q main.adb -bargs -d_S -d_V
elaborating units...
collecting units...
units collected.
constructing library graph...
validating library graph...
library graph validated.
library graph constructed.
constructing invocation graph...
validating invocation graph...
invocation graph validated.
invocation graph constructed.
augmenting library graph...
library graph augmented.
discovering components...
components discovered.
validating elaboration order...
elaboration order validated.
units elaborated.
2019-07-11 Hristian Kirtchev <kirtchev@adacore.com>
gcc/ada/
* bindo.adb: Update the section of switches and debugging
elaboration issues.
* bindo.ads: Add type Elaboration_Phase.
* bindo-augmentors.adb: Add use clause for
Bindo.Writers.Phase_Writers.
(Augment_Library_Graph): Signal the start and end of the
aubmentation phase.
* bindo-builders.adb: Add with and use clause for Bindo.Writers.
Add use clause for Bindo.Writers.Phase_Writers.
(Build_Invocation_Graph): Signal the start and end of the
invocation graph construction phase.
(Build_Library_Graph): Signal the start and end of the library
graph construction phase.
* bindo-diagnostics.adb: Add use clause for
Bindo.Writers.Phase_Writers.
(Diagnose_Cycle): Signal the start and end of the cycle
diagnostic phase.
* bindo-elaborators.adb: Add use clause for
Bindo.Writers.Phase_Writers.
(Elaborate_Units): Signal the start and end of the unit
elaboration phase.
* bindo-graphs.adb: Add use clause for
Bindo.Writers.Phase_Writers.
(Find_Components): Signal the start and end of the component
discovery phase.
(Find_Cycles): Signal the start and end of the cycle discovery
phase.
* bindo-units.adb: Add with and use clause for Bindo.Writers.
Add use clause for Bindo.Writers.Phase_Writers.
(Collect_Elaborable_Units): Signal the start and end of the unit
collection phase.
* bindo-validators.adb: Add with and use clause for
Bindo.Writers. Add use clause for Bindo.Writers.Phase_Writers.
(Validate_Cycles, Validate_Elaboration_Order,
Validate_Invocation_Graph, Validate_Library_Graph): Signal the
start and end of the libray graph validation phase.
* bindo-writers.ads, bindo-writers.adb: Add new nested package
Phase_Writers.
* debug.adb: Update the documentation of switch d_S.
From-SVN: r273379
Diffstat (limited to 'gcc/ada/debug.adb')
-rw-r--r-- | gcc/ada/debug.adb | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/gcc/ada/debug.adb b/gcc/ada/debug.adb index a81de09..44f0b9e 100644 --- a/gcc/ada/debug.adb +++ b/gcc/ada/debug.adb @@ -394,8 +394,8 @@ package body Debug is -- d_P Output cycle paths -- d_Q -- d_R - -- d_S - -- d_T Output elaboration order trace information + -- d_S Output elaboration-order status + -- d_T Output elaboration-order trace information -- d_U -- d_V Validate bindo cycles, graphs, and order -- d_W @@ -1167,6 +1167,9 @@ package body Debug is -- d_P GNATBIND outputs the cycle paths to standard output + -- d_S GNATBIND outputs trace information concerning the status of its + -- various phases to standard output. + -- d_T GNATBIND outputs trace information of elaboration order detection -- activities to standard output. |