Go to the first, previous, next, last section, table of contents.

## コマンドの解説

コマンドは `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` の引数がユーザ定義函数の呼び出しを含む場合, その函数呼び出しでエラーが起こった場合に元の函数の実行継続が不可能 になる場合があるということである.

Go to the first, previous, next, last section, table of contents.