8.4通过autom4te调试

有时,人们希望看到m4内部发生了什么为什么产出与预期不符。然而,后处理已完成通过自动意味着直接使用m4内置m4_跟踪可能会干扰操作。此外,频繁转移变化和禁止代币的概念使其变得困难使用第4页在最终输出中生成内联注释。

有几个工具可以帮助实现这一点。一是使用--轨迹选项由提供自动(以及每个包装程序的自动,例如自动配置文件),以便在调用宏时进行检查,并使用哪些参数。例如,当写这一段时autoconf版本可以通过以下方式找到:

$autoconf--trace=AC_INITconfigure.ac:23:ac_INIT:GNU Autoconf:2.63b.95-3963:bug-autoconf@gnu.org$autoconf--trace='AC_INIT:版本为$2'版本为2.63b.95-3963

另一个技巧是打印出各种m4表达式的扩展到标准错误或独立文件,没有进一步的m4扩展,并且不干扰转向变化或后处理按标准输出完成。m4_错误打印显示给定的表达式标准误差。例如,如果您希望看到autoconf原语或autoconf宏之一,可以这样做这个:

$cat配置.ac空调初始化m4_errprintn([AC_DEFINE_UNQUOTED:]的定义)m4_错误打印(m4_defn([AC_DEFINE_UNQUOTED])交流输出电动势$自动配置文件错误→AC_DEFINE_UNQUOTED的定义:错误→_AC_DEFINE_Q([],$@)