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

## デバッガの使用例

ここでは, 階乗を再帰的に計算させるユーザ定義函数を例として, デバッガの 実際の使用法を示す.

    % asir
    [0] load("fac")$
    [3] debug$
    (debug) list factorial
    1   def factorial(X) {
    2       if ( !X )
    3           return 1;
    4       else
    5           return X * factorial(X - 1);
    6   }
    7   end$
    (debug) stop at 5                     <-- ブレークポイントの設定
    (0) stop at "./fac":5
    (debug) quit                          <-- デバッグモードを抜ける
    [4] factorial(6);                     <-- factorial(6) の呼び出し
    stopped in factorial at line 5 in file "./fac"
    5           return X * factorial(X - 1);
    (debug) where                         <-- ブレークポイントまでの呼び出し列の表示
    factorial(), line 5 in "./fac"
    (debug) print X                       <-- X の値の表示
    X = 6
    (debug) step                          <-- ステップ実行 (函数に入る)
    stopped in factorial at line 2 in file "./fac"
    2		if ( !X )
    (debug) where
    factorial(), line 2 in "./fac"
    factorial(), line 5 in "./fac"
    (debug) print X
    X = 5
    (debug) delete 0                      <-- ブレークポイント 0 の消去
    (debug) cont                          <-- 実行継続
    720                                   <-- 結果 = 6!
    [5] quit;

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