Emacsの話題

  • Emacs Lispのデバッグ(2019.11.1)

  • Emacs Lispのデバッグ(2019.11.1)

    Emacs Lispのデバッグをedebugを使って行う方法です。

    まず、デバッグしたい関数のソースコード上に(どこでもよいので)カーソルをおいて、C-u C-M-xします。すると、次のその関数が評価された際にedebugモードに入ります。

    なお、Metaキーがきかない場合は、端末エミュレータの設定を見直してみてください。たとえば、TeraTermでは、Setup→Keyboard→Meta keyです。

    edebugモードのコマンド(の一部)は下記の通りです。

    SPC
    ステップ実行
    g
    次のブレークポイントまで実行
    h
    カーソル行まで実行
    t
    トレース
    b
    カーソル行にブレークポイント設定
    u
    ブレークポイント設定解除
    d
    バックトレース
    i
    カーソル位置の関数にステップイン(カーソルを関数の"("の位置におく)
    o
    ステップアウト
    e
    式を評価
    q
    edebugを抜ける
    ?
    ヘルプ

    実行中にC-x =で、カーソル位置の文字の文字コードが分かります。

    eコマンドで式を評価する際に、変数の値を表示するには(print <変数名>)とします。

    値の受渡しにバッファーを使用すると思いますが、現在のバッファーを知るには、eコマンドで(current-buffer)とします。


    ソフトウェアの話題のページ