ocamldebug
導入方法
1. http://caml.inria.fr/pub/distrib/ocaml-3.11/から、自分のOCamlコンパイラにあったバージョンのtar玉をダウンロード。
多分今なら、ocaml-3.11.2.tar.gz?
2. tar玉を展開したら、中にある"emacs"ディレクトリの中身を全部自分の好きなEmacsライブラリ用のディレクトリにコピー。
俺は~/.site-lisp/ocaml/の下にコピーしたんだけど、どうなんだろ。Emacs使いのエロい人教えて!
3. ~/.emacsを開いて、以下の行を追加。1行目はさっき自分がファイルをコピーした先に合わせて適当に読み替えてね。
(setq load-path (cons "~/.site-lisp/ocaml" load-path)) (autoload 'caml-mode "caml" "Major mode for editing Caml code." t) (autoload 'run-caml "inf-caml" "Run an inferior Caml process." t) (autoload 'camldebug "camldebug" "Run the Caml debugger." t)
4. Emacsを再起動
以上、お疲れ様でした。
前準備
コンパイルするときにデバッグオプション付けないとダメだよね、っていうことで。どちらかお好きな方をどうぞ。
Makefileに直接デバッグオプションを付ける
Makefileを開いたら、中に
OCAMLFLAGS = -g OCAMLLDFLAGS = -g
の2行を追加。後はmakeするだけ。
make dcを使う
make dcと入力すると行けるらしいけど未確認。誰か頼んだ。
使用方法
だいたいgdbと似たような感じ。
起動
1. ソースコードのバッファをcaml-modeにする。
M-x caml-modeでおk。tuareg-modeでは使えない。caml-modeで色が消えるのは仕様。
2. ocamldebugを起動する。
M-x ocamldebugでocamldebugが起動するので、デバッグしたい実行ファイル名を指定する。
3.runと入力すると、プログラムの実行が始まる。
4.プログラムを止めたければ、killでおk。
後はhelp見て。
ブレークポイント
ソースコード中のブレークしたいところで、C-x C-a C-b
プロンプトにb @[関数名] 行数を入力
2番目の方法はファイルが分かれてるとうまくいかないかも。エロい人教えて。
b @[モジュール名] 行数でうまく行きます。 -- amylase
ステップ実行
s(関数の中に入ってステップ実行)
n(関数の中には入らずにステップ実行)
ステップを戻っていくバックステッポ実行もできるらし。
変数の内容の出力
p 変数名