File : debug.ads


   1 ------------------------------------------------------------------------------
   2 --                                                                          --
   3 --                         GNAT COMPILER COMPONENTS                         --
   4 --                                                                          --
   5 --                                D E B U G                                 --
   6 --                                                                          --
   7 --                                 S p e c                                  --
   8 --                                                                          --
   9 --          Copyright (C) 1992-2015, Free Software Foundation, Inc.         --
  10 --                                                                          --
  11 -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  12 -- terms of the  GNU General Public License as published  by the Free Soft- --
  13 -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
  14 -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
  15 -- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
  16 -- or FITNESS FOR A PARTICULAR PURPOSE.                                     --
  17 --                                                                          --
  18 --                                                                          --
  19 --                                                                          --
  20 --                                                                          --
  21 --                                                                          --
  22 -- You should have received a copy of the GNU General Public License and    --
  23 -- a copy of the GCC Runtime Library Exception along with this program;     --
  24 -- see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see    --
  25 -- <http://www.gnu.org/licenses/>.                                          --
  26 --                                                                          --
  27 -- GNAT was originally developed  by the GNAT team at  New York University. --
  28 -- Extensive contributions were provided by Ada Core Technologies Inc.      --
  29 --                                                                          --
  30 ------------------------------------------------------------------------------
  31 
  32 --  This package contains global flags used to control the inclusion
  33 --  of debugging code in various phases of the compiler. Some of these
  34 --  flags are also used by the binder and gnatmake.
  35 
  36 package Debug is
  37    pragma Preelaborate;
  38 
  39    -------------------------
  40    -- Dynamic Debug Flags --
  41    -------------------------
  42 
  43    --  Flags that can be used to activate various specialized debugging output
  44    --  information. The flags are preset to False, which corresponds to the
  45    --  given output being suppressed. The individual flags can be turned on
  46    --  using the undocumented switch dxxx where xxx is a string of letters for
  47    --  flags to be turned on. Documentation on the current usage of these flags
  48    --  is contained in the body of Debug rather than the spec, so that we don't
  49    --  have to recompile the world when a new debug flag is added.
  50 
  51    Debug_Flag_A : Boolean := False;
  52    Debug_Flag_B : Boolean := False;
  53    Debug_Flag_C : Boolean := False;
  54    Debug_Flag_D : Boolean := False;
  55    Debug_Flag_E : Boolean := False;
  56    Debug_Flag_F : Boolean := False;
  57    Debug_Flag_G : Boolean := False;
  58    Debug_Flag_H : Boolean := False;
  59    Debug_Flag_I : Boolean := False;
  60    Debug_Flag_J : Boolean := False;
  61    Debug_Flag_K : Boolean := False;
  62    Debug_Flag_L : Boolean := False;
  63    Debug_Flag_M : Boolean := False;
  64    Debug_Flag_N : Boolean := False;
  65    Debug_Flag_O : Boolean := False;
  66    Debug_Flag_P : Boolean := False;
  67    Debug_Flag_Q : Boolean := False;
  68    Debug_Flag_R : Boolean := False;
  69    Debug_Flag_S : Boolean := False;
  70    Debug_Flag_T : Boolean := False;
  71    Debug_Flag_U : Boolean := False;
  72    Debug_Flag_V : Boolean := False;
  73    Debug_Flag_W : Boolean := False;
  74    Debug_Flag_X : Boolean := False;
  75    Debug_Flag_Y : Boolean := False;
  76    Debug_Flag_Z : Boolean := False;
  77 
  78    Debug_Flag_AA : Boolean := False;
  79    Debug_Flag_BB : Boolean := False;
  80    Debug_Flag_CC : Boolean := False;
  81    Debug_Flag_DD : Boolean := False;
  82    Debug_Flag_EE : Boolean := False;
  83    Debug_Flag_FF : Boolean := False;
  84    Debug_Flag_GG : Boolean := False;
  85    Debug_Flag_HH : Boolean := False;
  86    Debug_Flag_II : Boolean := False;
  87    Debug_Flag_JJ : Boolean := False;
  88    Debug_Flag_KK : Boolean := False;
  89    Debug_Flag_LL : Boolean := False;
  90    Debug_Flag_MM : Boolean := False;
  91    Debug_Flag_NN : Boolean := False;
  92    Debug_Flag_OO : Boolean := False;
  93    Debug_Flag_PP : Boolean := False;
  94    Debug_Flag_QQ : Boolean := False;
  95    Debug_Flag_RR : Boolean := False;
  96    Debug_Flag_SS : Boolean := False;
  97    Debug_Flag_TT : Boolean := False;
  98    Debug_Flag_UU : Boolean := False;
  99    Debug_Flag_VV : Boolean := False;
 100    Debug_Flag_WW : Boolean := False;
 101    Debug_Flag_XX : Boolean := False;
 102    Debug_Flag_YY : Boolean := False;
 103    Debug_Flag_ZZ : Boolean := False;
 104 
 105    Debug_Flag_1 : Boolean := False;
 106    Debug_Flag_2 : Boolean := False;
 107    Debug_Flag_3 : Boolean := False;
 108    Debug_Flag_4 : Boolean := False;
 109    Debug_Flag_5 : Boolean := False;
 110    Debug_Flag_6 : Boolean := False;
 111    Debug_Flag_7 : Boolean := False;
 112    Debug_Flag_8 : Boolean := False;
 113    Debug_Flag_9 : Boolean := False;
 114 
 115    Debug_Flag_Dot_A : Boolean := False;
 116    Debug_Flag_Dot_B : Boolean := False;
 117    Debug_Flag_Dot_C : Boolean := False;
 118    Debug_Flag_Dot_D : Boolean := False;
 119    Debug_Flag_Dot_E : Boolean := False;
 120    Debug_Flag_Dot_F : Boolean := False;
 121    Debug_Flag_Dot_G : Boolean := False;
 122    Debug_Flag_Dot_H : Boolean := False;
 123    Debug_Flag_Dot_I : Boolean := False;
 124    Debug_Flag_Dot_J : Boolean := False;
 125    Debug_Flag_Dot_K : Boolean := False;
 126    Debug_Flag_Dot_L : Boolean := False;
 127    Debug_Flag_Dot_M : Boolean := False;
 128    Debug_Flag_Dot_N : Boolean := False;
 129    Debug_Flag_Dot_O : Boolean := False;
 130    Debug_Flag_Dot_P : Boolean := False;
 131    Debug_Flag_Dot_Q : Boolean := False;
 132    Debug_Flag_Dot_R : Boolean := False;
 133    Debug_Flag_Dot_S : Boolean := False;
 134    Debug_Flag_Dot_T : Boolean := False;
 135    Debug_Flag_Dot_U : Boolean := False;
 136    Debug_Flag_Dot_V : Boolean := False;
 137    Debug_Flag_Dot_W : Boolean := False;
 138    Debug_Flag_Dot_X : Boolean := False;
 139    Debug_Flag_Dot_Y : Boolean := False;
 140    Debug_Flag_Dot_Z : Boolean := False;
 141 
 142    Debug_Flag_Dot_AA : Boolean := False;
 143    Debug_Flag_Dot_BB : Boolean := False;
 144    Debug_Flag_Dot_CC : Boolean := False;
 145    Debug_Flag_Dot_DD : Boolean := False;
 146    Debug_Flag_Dot_EE : Boolean := False;
 147    Debug_Flag_Dot_FF : Boolean := False;
 148    Debug_Flag_Dot_GG : Boolean := False;
 149    Debug_Flag_Dot_HH : Boolean := False;
 150    Debug_Flag_Dot_II : Boolean := False;
 151    Debug_Flag_Dot_JJ : Boolean := False;
 152    Debug_Flag_Dot_KK : Boolean := False;
 153    Debug_Flag_Dot_LL : Boolean := False;
 154    Debug_Flag_Dot_MM : Boolean := False;
 155    Debug_Flag_Dot_NN : Boolean := False;
 156    Debug_Flag_Dot_OO : Boolean := False;
 157    Debug_Flag_Dot_PP : Boolean := False;
 158    Debug_Flag_Dot_QQ : Boolean := False;
 159    Debug_Flag_Dot_RR : Boolean := False;
 160    Debug_Flag_Dot_SS : Boolean := False;
 161    Debug_Flag_Dot_TT : Boolean := False;
 162    Debug_Flag_Dot_UU : Boolean := False;
 163    Debug_Flag_Dot_VV : Boolean := False;
 164    Debug_Flag_Dot_WW : Boolean := False;
 165    Debug_Flag_Dot_XX : Boolean := False;
 166    Debug_Flag_Dot_YY : Boolean := False;
 167    Debug_Flag_Dot_ZZ : Boolean := False;
 168 
 169    Debug_Flag_Dot_1 : Boolean := False;
 170    Debug_Flag_Dot_2 : Boolean := False;
 171    Debug_Flag_Dot_3 : Boolean := False;
 172    Debug_Flag_Dot_4 : Boolean := False;
 173    Debug_Flag_Dot_5 : Boolean := False;
 174    Debug_Flag_Dot_6 : Boolean := False;
 175    Debug_Flag_Dot_7 : Boolean := False;
 176    Debug_Flag_Dot_8 : Boolean := False;
 177    Debug_Flag_Dot_9 : Boolean := False;
 178 
 179    procedure Set_Debug_Flag (C : Character; Val : Boolean := True);
 180    --  Where C is 0-9, A-Z, or a-z, sets the corresponding debug flag to
 181    --  the given value. In the checks off version of debug, the call to
 182    --  Set_Debug_Flag is always a null operation.
 183 
 184    procedure Set_Dotted_Debug_Flag (C : Character; Val : Boolean := True);
 185    --  Where C is 0-9, A-Z, or a-z, sets the corresponding dotted debug
 186    --  flag (e.g. call with C = 'a' for the .a flag).
 187 
 188 end Debug;