## page was renamed from 関数・論理型プログラミング実験/ocamldebug ##master-page:NoteTemplate #format wiki #language ja = 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 変数名}}} -- [[carbon_twelve]] ---- [[Categoryノート]]