Finally, there are several options for aiding in debugging
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 Debug Levels, for more details on the format and meaning of flags. If omitted, flags defaults to ‘aeq’.
dumpdef output, debug messages, and trace output to the
named file. Warnings, error messages, and
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 Debug 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.
Restrict the size of the output generated by macro tracing to num characters per trace line. If unspecified or zero, output is unlimited. See Debug Levels, for more details.
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 Trace, for more details.