バッチファイルからコマンドを実行します。
このコマンドは、デバッガーが一連のコマンドを読み取り、実行するファイルを指定します。
また、.idbrc や .dbxinit という名前の初期化ファイルを作成して、デバッガーの起動時にデバッガーコマンドを実行することもできます。
ファイルにコマンドを記述しておくと、ターミナルに切り取りや貼り付けを行わなくても、ファイルから直接実行できます。これらのコマンドは入れ子が可能です。複数のコマンドファイルがある場合、デバッガーは前のファイルの最終コマンドを処理した直後に後続ファイルを読み取り、処理を続けます。
コマンドファイルの規則とガイドラインは次のとおりです。
プロンプトから直接入力された空白行とは異なり、コマンドファイルの空白行の場合、直前のコマンドは繰り返されません。
コマンドの書式は、デバッガープロンプトで入力された場合と同じようにします。
シャープ記号 (#) を使用して、スクリプトの書式を設定するコメントを作成できます。
コマンドファイルが実行される際、$pimode デバッガー変数の値によって、コマンドがエコーされるかどうかが決定されます。$pimode 変数が 1 に設定されている場合、コマンドはエコーされます。$pimode が 0 (デフォルト) に設定されている場合、コマンドはエコーされません。コマンドの結果によるデバッガー出力は、常にエコーされます。
次の例は、../src/myscript という名前のデバッガースクリプトです。
step where 2
次の例は、このスクリプトを実行する方法を示しています。
(idb) run [1] stopped at [int main(void):187 0x080516aa] 188 nodeList.append(newNode); {static int somethingToReturnTo; somethingToReturnTo++; } (idb) source ../src/myscript stopped at [void List<Node>::append(class Node* const):148 0x0804ae5a] 148 if (!_firstNode) >0 0x0804ae5a in ((List<Node>*)0xbfffa460)->List<Node>::append(node=0x805c500) "src/x_list.cxx":148