Next:
Up:
Previous:
4.6.2 位置情報の指定/表示(Emacs版)
コマンドラインから gdbを用いる場合,
表示の関係上,行を実行単位として実行行う必要があるが,
Emacs インターフェイスを用いてgdbを用いる場合,
その必要はない.
現在の実行部分のソース上での表示やブレイクポイント設定等は,
Emacs バッファ上で行う事が出来るからである.
現在の実装では,図4.7のように実行の遷移が示される.
アンダーラインで示されるのが,現在実行されようとしている箇所であり,
(make-tree (- n 1))のように表示されている場合は,
make-treeの実行が終了した所である事を示している.
また,ブレイクポイントの設定もABCL/f ソース上で場所を示す事で
S式単位の設定が可能である.
このような表示を可能にするため,
ライン情報の対応を保存したダミーファイルを用いている.
gdb 側ではダミーファイルをソースとして指定し,
Emacs インターフェイス 上でおこなわれた行番号指定やソース上での位置指定に関して,
ダミーファイル上のライン情報に変換することで処理している.
(defun make-tree (n)
(declare (fixnum n) (reply-type tree))
(if (= n 0)
(leaf 1)
(node (make-tree (- n 1)) (make-tree (- n 1)))))
----- next 実行 ------
(defun make-tree (n)
(declare (fixnum n) (reply-type tree))
(if (= n 0)
(leaf 1)
(node (make-tree (- n 1)) (make-tree (- n 1)))))
----- next 実行 ------
(defun make-tree (n)
(declare (fixnum n) (reply-type tree))
(if (= n 0)
(leaf 1)
(node (make-tree (- n 1)) (make-tree (- n 1)))))
図4.7 Emacs インターフェイス 上での next 実行例
Mitsubishi Research Institute,Inc.
Mon Feb 24 19:27:22 JST 1997