通常、デバッグする最も簡単な方法は、printf
を使用することです。 emacs-lispをデバッグするにはどうすればよいですか? elispからemacsエディタに何かを印刷するにはどうすればよいですか?またはelispコードをデバッグする方法はありますか?
たとえば、次のコードが.emacs
ファイルで実行されているかどうかを確認するにはどうすればよいですか?
(load "auctex.el" nil t t)
デバッガ(edebug)の使用は非常に簡単です。関数の定義に移動し、次のように入力します M-x edebug-defun。次に呼び出されたときに、他のすべてのデバッガーと同様にコードをステップ実行できます。タイプ ? キーバインドのリストについては、または edebug のドキュメントを確認してください。
GNU Emacsには2つのデバッガがあります:
debug
を使用しています。これらは一般的なエントリポイントです(使用する方法)。
M-x debug-on-entry
の後に、デバッガーを使用して入力する関数が続きます。
M-x toggle-debug-on-error
-エラーが発生したときにデバッガーに入ります。
M-x toggle-debug-on-quit
-ユーザーがヒットしたときにデバッガに入ります C-g。debug
への明示的な呼び出しをコードの特定の場所(ブレークポイント)に配置し、それらの場所にデバッガーを入力します。(デバッグ)
次を使用してデバッガをステップ実行します d、または c 特定の評価の詳細をスキップします。
これは値の印刷に役立ちます
(message "Hello (%s)" foo)
しかし、データ構造ではうまく機能しません。そのためには、
(prin1 list-foo)
または(prin1-to-string)を(メッセージ)に埋め込みます。
デバッグする最も簡単な方法は、コードをインタラクティブに実行することです。 LISPバッファーでこれを行うには、式の後にポイントを配置して実行します。 C-x C-e (eval-last-sexp
)。
または:
(message "hello world")
C-h f message 組み込みのメッセージ関数の詳細をご覧ください。大量のメッセージを生成する場合は、変数message-log-max
をより大きな値にカスタマイズできます。
質問に1つずつ回答するには: