当程序陷入无限循环且无法返回时,首先需要停止该循环。 在大多数操作系统中,你可以使用 C-g 触发退出(quit)。 See Quitting。
常规的退出操作无法提供程序陷入循环的原因。
要获取更多信息,可将变量 debug-on-quit 设为非nil。
当调试器在无限循环中启动后,你可以使用单步命令继续调试。
如果逐步执行完整个循环,你可能会获得足够的信息来解决问题。
使用 C-g 退出不被视为错误,
debug-on-error 对 C-g 的处理无影响。
同理,debug-on-quit 对错误也无影响。
该变量决定在 quit 信号被触发且未被处理时是否调用调试器。
如果 debug-on-quit 为非nil,
则每次退出(即按下 C-g)都会调用调试器。
如果 debug-on-quit 为 nil(默认值),
退出时不会调用调试器。