[ << ] | [ < ] | [上] | [ > ] | [ >> ] | [冒頭] | [目次] | [見出し] | [ ? ] |
コマンドは dbx
のコマンドの内必要最小限のものを採用した.
更に, gdb
のコマンドからもいくつか便利なものを採用した.
実際の機能は dbx
とほぼ同様であるが, step
, next
は,
次の行ではなく次の文を実行する.
従って, 1行に複数の文がある場合は, その文の数だけ next
を実行しなければ次の行に進めない. また, dbx
と同様
‘.dbxinit’ を読み込むので, dbx
と同じ alias を使うことがで
きる.
step
次の文を実行する. 次の文が函数を含むとき, その函数に入る.
next
次の文を実行する.
finish
現在実行中の函数の実行が終了した時点で再びデバッグモードに入る.
誤って step
を実行した場合に有効である.
cont
quit
デバッグモードから抜け, 実行を継続する.
up [n]
スタックフレームを 1 段 (引数 n がある時は n 段) 上がる. これにより, そのスタックフレームに属する変数の値の参照, 変更ができる.
down [n]
スタックフレームを 1 段 (引数 n がある時は n 段) 下がる.
frame [n]
引数がないとき, 現在実行中の函数を表示する.
引数があるとき, スタックフレームを番号 n のものに設定する. ここで
スタックフレームの番号とは
where
により表示される呼び出し列において, 先頭に表示される番号の
ことである.
list [startline]
list function
現在行, または startline, または functionの先頭から 10 行ソー スファイルを表示する.
print expr
expr を表示する.
func function
対象函数を function に設定する.
stop at sourceline [if cond]
stop in function
sourceline行目, または function の先頭にブレークポイントを
設定する. ブレークポイントは, 函数が再定義された場合自動的に取り消され
る. if
が続く場合, cond が評価され, それが 0 でない場合に
実行が中断し, デバッグモードに入る.
trace expr at sourceline [if cond]
trace expr in function
stop
と同様であるが, trace
では単に expr を表示する
のみで, デバッグモードには入らない.
delete n
ブレークポイント n を取り消す.
status
ブレークポイントの一覧を表示する.
where
現在の停止点までの呼び出し列を表示する.
alias alias command
command に alias の別名を与える.
print
の引数として, トップレベルにおけるほとんどすべての式
がとれる. 通常は, 変数の内容の表示が主であるが, 必要に応じて次の
ような使い方ができる.
実行中のブレークポイントにおいて, 変数の値を変更して実行を継続させたい 場合, 次のような操作を行えばよい.
(debug) print A A = 2 (debug) print A=1 A=1 = 1 (debug) print A A = 1
函数呼び出しも式であるから, print
の引数としてとれる.
(debug) print length(List) length(List) = 14
この例では, 変数 List
に格納されているリストの長さを length()
により調べている.
(debug) print ctrl("cputime",1) ctrl("cputime",1) = 1
この例は, 計算開始時に CPU 時間の表示の指定をし忘れた場合などに, 計算 途中でデバッグモードから指定を行えることを示している.
また, 止むを得ず計算を中断しなければならない場合, デバッグモードから
bsave()
などのコマンドにより途中結果をファイルに保存することも
できる.
(debug) print bsave(A,"savefile") bsave(A,"savefile") = 1
デバッグモードからの函数呼び出しで注意すべきことは,
print
の引数がユーザ定義函数の呼び出しを含む場合,
その函数呼び出しでエラーが起こった場合に元の函数の実行継続が不可能
になる場合があるということである.
[ << ] | [ < ] | [上] | [ > ] | [ >> ] |
この文書は12月 21, 2024にtexi2html 5.0を用いて生成されました。