Next: Keyword Commands, Up: Debugging [Contents][Index]
Maximaは、組み込みのソースレベルデバッガを持っています。 ユーザーは、関数にブレイクポイントを設定でき、 そこから行毎に実行することができます。 そのレベルでバインドされた変数と一緒にコールスタックを検査することができます。
コマンド:help
または:h
は、
デバッガーコマンドのリストを示します。
(一般的に、
もし略字がただ1つなら、コマンドは略せます。
もしただ1つでないなら、選択肢がリストされます。)
デバッガー内では、
変数と式を検査し、定義し、操作するために、ユーザーは任意の通常のMaxima関数も使うことができます。
Maximaプロンプトで、
:br
コマンドで
ブレイクポイントが設定できます。
デバッガー内では、
ユーザーは、
:n
(“next”)コマンドを使って1度に1行進むことができます。
:bt
(“backtrace”)コマンドは、スタックフレームのリストを示します。
:r
(“resume”)コマンドは、デバッガーから抜けて、実行を続けます。
以下の例で、これらのコマンドを例示します。
(%i1) load ("/tmp/foobar.mac"); (%o1) /tmp/foobar.mac (%i2) :br foo Turning on debugging debugmode(true) Bkpt 0 for foo (in /tmp/foobar.mac line 1) (%i2) bar (2,3); Bkpt 0:(foobar.mac 1) /tmp/foobar.mac:1:: (dbm:1) :bt <-- :bt typed here gives a backtrace #0: foo(y=5)(foobar.mac line 1) #1: bar(x=2,y=3)(foobar.mac line 9) (dbm:1) :n <-- Here type :n to advance line (foobar.mac 2) /tmp/foobar.mac:2:: (dbm:1) :n <-- Here type :n to advance line (foobar.mac 3) /tmp/foobar.mac:3:: (dbm:1) u; <-- Investigate value of u 28 (dbm:1) u: 33; <-- Change u to be 33 33 (dbm:1) :r <-- Type :r to resume the computation (%o2) 1094
ファイル/tmp/foobar.mac
は以下の通りです:
foo(y) := block ([u:y^2], u: u+3, u: u^2, u); bar(x,y) := ( x: x+2, y: y+2, x: foo(y), x+y);
EMACSを通してのデバッガーの使用
もしユーザーがシェルウィンドウ(dblシェル)で、GNU emacsの下でコードを走らせているか、 グラフィカルならインターフェイスバージョンXmaximaを走らせているなら、 もしブレイクポイントで停止させたら、 ウィンドウの他の半面に表示されるソースファイルの中に、 赤でハイライトされたか、右行を示す小さな矢印で 現在位置を見るでしょう。 M-n (Alt-n)をタイプすることで、一度に一行進めることができます。
Emacsの下では、
dbl
シェルの中で走らせなければいけません。
dbl
シェルは、elispディレクトリの中に
dbl.el
ファイルを要求します。
elispファイルをインストールしたか、Maxima elispディレクトリをパスに足したかを確認してください:
例えば、以下を
.emacsファイルかsite-init.elに足してください。
(setq load-path (cons "/usr/share/maxima/5.9.1/emacs" load-path)) (autoload 'dbl "dbl")
すると、emacsの中で、
M-x dbl
は、例えば、Maxima, gcl, gbbなどのプログラムを走らせることができるシェルウィンドウを開始するでしょう。 このシェルウィンドウはソースレベルデバッグや 他のウィンドウのソースコードの表示についても知っています。
ユーザーは、
C-x space
をタイプすることで
ファイルのある行に
ブレイクポイントを設定できます。
これは、カーソルがどの関数の中かがわかり、
カーソルが示すその関数のどの行かわかります。
もしカーソルが、例えば、foo
の行2なら、
foo
を二番目の行でブレイクするために、
他のウィンドウの中で、コマンド“:br foo 2
”を挿入します。
これをイネーブルにするには、
ユーザーは
ファイルfoobar.mac
が訪れるウィンドウの中で
maxima-mode.elを機能させなければいけません。
Alt-Control-x
をタイプすることで
関数をMaximaに評価ような、
そのファイルウィンドウで利用可能な追加のコマンドがあります。
Next: Keyword Commands, Up: Debugging [Contents][Index]