#### 3.3.3 Debugging Categories ¶

Category: all ¶

  This is not a category as such, but rather a convenient shortcut for setting all categories. For example:

  `all`

    Sets all levels in all debugging categories.

  `all.trace6`

    Sets levels up to and including `trace6` in all debugging categories.

  `all.!=prot;!mailer;auth.prot`
  `all.!=prot;!mailer;auth`

    Sets all levels except `prot` in all categories, excepting `mailer` and `auth`. The `mailer` category is disabled. All levels are set in `auth`.

Category: acl ¶

  This category enables debugging of Access Control Lists. Available levels are:

  `error`

    As usual, displays errors, not directly reported otherwise.

  `trace0`

    Basic tracing of ACL processing.

  `trace9`

    Traces the process of matching the ACL conditions.

Category: config ¶

  This category affects configuration parser and/or lexical analyzer. The following levels are supported:

  `trace0`

    Minimal information about configuration statements.

  `trace2`

    Trace lexical structure of the configuration files.

  `trace7`

    Trace execution of the configuration parser.

  Due to its specific nature, this category cannot be enabled from the configuration file. A special hook is provided to facilitate debugging the configuration parser, namely, a pragmatic comment in form:

      #debug=debug-level-list

  causes debug-level-list to be parsed as described above. Thus, to force debugging of the configuration parser, one would add the following line at the very beginning of the configuration file:

      #debug=config.trace7

Category: mailbox ¶

  Operations over mailboxes. This module supports the following levels: ‘`error`’, ‘`trace0`’, ‘`trace1`’, and ‘`prot`’. The latter is used by remote mailbox support libraries.

Category: auth ¶

  Enables debugging information about authentication and authorization. This category supports the following levels: ‘`error`’, ‘`trace0`’, ‘`trace1`’, and ‘`trace2`’.

  In level ‘`trace0`’, user data are reported along with the data source they were obtained from. The output may look like this:

      pop3d: source=system, name=gray, passwd=x, uid=120, gid=100,
      gecos=Sergey Poznyakoff, dir=/home/gray, shell=/bin/bash,
      mailbox=/var/mail/gray, quota=0, change_uid=1

  In the ‘`trace1`’ level, additional flow traces are displayed.

  In the level ‘`trace2`’, a detailed flow trace is displayed, which looks like the following:

      pop3d: Trying generic...
      pop3d: generic yields 38=Function not implemented
      pop3d: Trying system...
      pop3d: system yields 0=Success
      pop3d: Trying generic...
      pop3d: generic yields 4135=Authentication failed
      pop3d: Trying system...
      pop3d: system yields 0=Success

Category: mailer ¶

  Debugs mailer operations. The following levels are supported:

  `error`

    Displays mild error conditions.

  `trace0`

    Traces mailer operations in general: displays what part of the message is being sent, etc.

  `trace6`

    When used together with ‘`prot`’, displays security-sensitive information (such as passwords, user keys, etc). in plaintext. By default, such information is replaced with asterisks to reduce the possibility of security compromise.

  `trace7`

    When used together with ‘`prot`’, displays the payload information as it is being sent. The payload is the actual message contents, i.e. the part of SMTP transaction that goes after the ‘`DATA`’ command and which ends with a terminating dot line. Setting this level can generate huge amounts of information.

  `prot`

    For SMTP mailer: outputs transcripts of SMTP sessions.

  Note: Unless in a very secure environment, it is advised to avoid using level settings such as mailer.prot or mailer (without explicit level part), because the resulting output tends to be extremely copious and reveals sender private and security-sensitive data. If you wish to trace SMTP session flow, use ‘`mailer.=prot`’ or at least ‘`mailer.prot,!trace6`’.

Category: server ¶

  This category provides debugging information for Mailutils IP server objects. It supports the ‘`error`’ and ‘`trace0`’ levels.

Category: folder ¶

  This category controls debugging information shown for operations related to Mailutils folders.

Category: remote ¶

  The remote category is used by `imap4d` and `pop3d` servers to request showing additional information in the session transcripts. This category takes effect only when the `transcript` configuration variable is set. Valid levels are:

  `trace6`

    Show security-sensitive information (user passwords, etc.)

  `trace7`

    Show payload information