Pragma Debug (GNAT Reference Manual)

### 2.44 Pragma Debug ¶

Syntax:

    pragma Debug ([CONDITION, ]PROCEDURE_CALL_WITHOUT_SEMICOLON);

    PROCEDURE_CALL_WITHOUT_SEMICOLON ::=
      PROCEDURE_NAME
    | PROCEDURE_PREFIX ACTUAL_PARAMETER_PART

The procedure call argument has the syntactic form of an expression, meeting the syntactic requirements for pragmas.

If debug pragmas are not enabled or if the condition is present and evaluates to False, this pragma has no effect. If debug pragmas are enabled, the semantics of the pragma is exactly equivalent to the procedure call statement corresponding to the argument with a terminating semicolon. Pragmas are permitted in sequences of declarations, so you can use pragma `Debug` to intersperse calls to debug procedures in the middle of declarations. Debug pragmas can be enabled either by use of the command line switch ‘-gnata’ or by use of the pragma `Check_Policy` with a first argument of `Debug`.

This is an assertion kind pragma that can associate a set of its arguments with an assertion level. See SPARK 2014 Reference Manual, section 11.4.2.