プログラムが無限ループに陥り、復帰しなくなった場合、まず行うべきことはループを停止させることです。ほとんどのオペレーティングシステムでは、C-g を使用してこれを行うことができ、これにより quit が実行されます。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(デフォルト)の場合、終了してもデバッガは呼び出されません。