GNU Emacs 32.0.50 (9008bf64c3) のマニュアルを PLaMo 翻訳で機械翻訳したものです。誤訳を含むことがあります。原文: https://www.gnu.org/software/emacs/manual/html_node/elisp/Infinite-Loops.html ・ emacs-doc.conao3.com

19.1.3 無限ループのデバッグ

プログラムが無限ループに陥り、復帰しなくなった場合、まず行うべきことはループを停止させることです。ほとんどのオペレーティングシステムでは、C-g を使用してこれを行うことができ、これにより quit が実行されます。Quitting を参照してください。

通常の終了では、プログラムがなぜループしていたのかに関する情報は得られません。より詳細な情報を得るには、変数 debug-on-quit に nil 以外の値を設定してください。無限ループの途中でデバッガを起動できれば、そこからステップ実行コマンドを用いて進めることができます。ループ全体をステップ実行すれば、問題を解決するのに十分な情報が得られるかもしれません。

C-g で終了してもエラーとはみなされず、debug-on-error は C-g の処理に影響を与えません。同様に、debug-on-quit もエラーには影響しません。

ユーザーオプション: debug-on-quit

この変数は、quit がシグナルされ、処理されなかった場合にデバッガが呼び出されるかどうかを決定します。debug-on-quit が nil 以外の場合、終了するたび(すなわち C-g を入力するたび)にデバッガが呼び出されます。debug-on-quit が nil(デフォルト)の場合、終了してもデバッガは呼び出されません。