13.4 デバッグモード
スクリプトの実行中に Octave がデバッグ モードに入った場所をユーザーが見つけ、Octave がデバッグ モードに入ったポイントを囲むスクリプトのコードを出力できるようにする 3 つの追加サポート関数があります。
: dbwhere
デバッグ モードでは、実行が停止されている現在のファイルと行番号を報告します。
See also: dbstack, dblist, dbstatus, dbcont, dbstep, dbup, dbdown.
: dbtype
: dbtype lineno
: dbtype startl:endl
: dbtype startl:end
: dbtype fcn
: dbtype fcn lineno
: dbtype fcn startl:endl
: dbtype fcn startl:end
行番号付きのスクリプト ファイルを表示します。
デバッグ モードで引数なしで呼び出されると、現在デバッグ中のスクリプト ファイルが表示されます。
オプションの範囲指定を使用すると、ファイルの一部のみをリストできます。特殊キーワードは、"end"ファイルの最後の行の有効な行番号指定です。
関数名を指定して呼び出されると、そのスクリプト ファイルが行番号とともに一覧表示されます。
See also: dblist, dbwhere, dbstatus, dbstop.
: dblist
: dblist n
デバッグ モードでは、現在実行される行を中心にデバッグ対象の関数の n行をリストします。
指定しない場合、n はデフォルトで 10 (+/- 5 行) になります。
See also: dbwhere, dbtype, dbstack.
デバッグ モードの場合は true を返し、それ以外の場合は false を返します。
: tf = isdebugmode ()
Return true if in debugging mode, otherwise false.
See also: dbwhere, dbstack, dbstatus.
デバッグモードでは、 dbstepコマンドを使用して関数を 1 行ステップ実行することもできます。
: dbstep
: dbstep n
: dbstep in
: dbstep out
: dbnext …
デバッグ モードで、次のn行のコードを実行します。
nが省略された場合、次の 1 行のコードが実行されます。次の行のコード自体が m ファイルで定義されている場合は、既存の関数に残ります。
を使用するとdbstep in、次の行の実行時に、次の行で定義されている m ファイルにステップインします。
を使用するとdbstep out、現在の関数が返されるまで実行が継続されます。
プログラミング ノート:dbnextは の別名でありdbstep、互換的に使用できます。
See also: dbcont, dbquit.
デバッグ モードでは、RETURNキーは最後に入力したコマンドを実行します。これは、たとえば、ブレークポイントに到達して dbstep1 回入力した後などに便利です。その後は、1 回のキー ストロークだけでコードを 1 行ずつ進めることができます。この機能は、 auto_repeat_debug_command関数を使用して無効にできます。
: val = auto_repeat_debug_command ()
: old_val = auto_repeat_debug_command (new_val)
: old_val = auto_repeat_debug_command (new_val, "local")
入力行が空の場合( とだけ入力した場合)にデバッグ コマンドが自動的に繰り返されるかどうかを制御する内部変数を照会または設定しますRET。
オプションを使用して関数内から呼び出されると"local"、関数とそれが呼び出すサブルーチンに対して変数がローカルに変更されます。関数を終了すると、元の変数値が復元されます。