When sendmail is given the -d
debugging
switch, it internally performs three distinct actions. First,
if the category.level
is omitted, sendmail
presets all categories 0-99 inclusively to a level
of 1. It then sets the categories in the command line
(if any) to the corresponding levels specified (or to 1 if no
level is specified). Finally, it calls setbuf(3) to place
the standard output in unbuffered mode.
Setting categories 0-99 to a level of 1 has two side effects:
Usually, certain errors are not reported because they are tolerable, but a level of 1 generally causes those otherwise missing error messages to be printed. For example, if the aliases file is missing, sendmail does not perform aliasing but is silent about it. A category 27 level of 1, on the other hand, causes sendmail to print the reason it could not open the aliases file.
Since sendmail is usually silent about what it is doing, any debugging at all causes it to print a great deal of information about what it is trying to do and what it has done.