### 2.5 Command line options for debugging ¶

Finally, there are several options for aiding in debugging `m4` scripts.

`-d[flags]`
`--debug[=flags]`

  Set the debug-level according to the flags flags. The debug-level controls the format and amount of information presented by the debugging functions. See Controlling debugging output, for more details on the format and meaning of flags. If omitted, flags defaults to ‘`aeq`’.

`--debugfile[=file]`
`-o file`
`--error-output=file`

  Redirect `dumpdef` output, debug messages, and trace output to the named file. Warnings, error messages, and `errprint` output are still printed to standard error. If these options are not used, or if file is unspecified (only possible for `--debugfile`), debug output goes to standard error; if file is the empty string, debug output is discarded. See Saving debugging output, for more details. The option `--debugfile` may be given more than once, and order is significant with respect to file names. The spellings `-o` and `--error-output` are misleading and inconsistent with other GNU tools; for now they are silently accepted as synonyms of `--debugfile` and only recognized once, but in a future version of M4, using them will cause a warning to be issued.

`-l num`
`--arglength=num`

  Restrict the size of the output generated by macro tracing to num characters per trace line. If unspecified or zero, output is unlimited. See Controlling debugging output, for more details.

`-t name`
`--trace=name`

  This enables tracing for the macro name, at any point where it is defined. name need not be defined when this option is given. This option may be given more than once, and order is significant with respect to file names. See Tracing macro calls, for more details.