dbx には、デバッグ実行のすべてまたは一部を保存し、それをあとで再生するための次の 3 つのコマンドが用意されています。
save コマンドは、直前に実行された run コマンド、rerun コマンド、または debug コマンドから save コマンドまでに発行されたデバッグコマンドをすべてファイルに保存します。デバッグセッションのこのセグメントは、「デバッグ実行」と呼ばれます。
発行されたデバッグコマンドのリストに加えて、save コマンドでは、実行開始時のプログラムの状態に関するデバッグ情報 (ブレークポイントや表示リストなど) が保存されます。保存された実行を復元するとき、dbx は、保存ファイル内にあるこれらの情報を使用します。
デバッグ実行の一部、つまり、入力されたコマンドのうち指定する数だけ最後から除いたものを保存することもできます。
保存する実行の終了位置がわからない場合は、history コマンドを使用して、セッション開始以降に発行されたデバッグコマンドのリストを確認してください。
save コマンドは、デバッグ全体を保存する時点で発行します。
(dbx) save
デバッグ実行の一部を保存するには、number オプションを含めます。ここで、number は save コマンドから前に戻った、保存したくないコマンドの数です。
(dbx) save -number
ファイル名を指定せずにデバッグ実行を保存すると、dbx は特殊ファイルに情報を書き込みます。保存するたびに、dbx はこのファイルを上書きします。ただし、save コマンドに filename 引数を指定することにより、filename に保存されたデバッグ実行のあとにほかのデバッグ実行を保存した場合でも、あとで復元できるファイルにデバッグ実行を保存できます。
一連の実行を保存すると、それぞれがセッション内のさらに前から開始する一連のチェックポイントが提供されます。保存されたこれらの実行は任意に復元して続行し、さらに、以前の実行で保存されたプログラム位置と状態に dbx をリセットすることができます。
デフォルト以外のファイルにデバッグ実行を保存するには、ファイル名を含めます。
(dbx) save filename
実行を保存したら、restore コマンドを使用して実行を復元できます。dbx は、その保存ファイル内の情報を使用します。実行を復元すると、dbx は、まず内部状態をその実行の開始時の状態にリセットしてから、保存された実行内の各デバッグコマンドを再発行します。
保存されたデバッグ実行を正確に復元するには、run タイプコマンドへの引数、手動入力、およびファイル入力などの、実行での入力すべてが正確に同じである必要があります。
保存されたデバッグ実行を復元するには、次のように入力します。
(dbx) restore
デフォルト以外のファイルに保存されたデバッグ実行を復元するには、次のように入力します。
(dbx) restore filename
replay コマンドは、save -1 を発行したあと、ただちに restore を発行するのと同じ、組み合わせのコマンドです。replay コマンドは、負の number 引数をとります。これは、コマンドの save の部分に渡されます。デフォルトでは、-number の値は -1 であるため、replay コマンドは元に戻すコマンドとして機能し、最後の実行を最後に発行されたコマンドまで (ただし、このコマンドは除く) 復元します。
現在のデバッグ実行を、最後に発行されたデバッグコマンドを除いて再生するには、次のように入力します。
(dbx) replay
現在のデバッグ実行を再生し、特定のコマンドの前で実行を停止するには、–number オプションを使用します。ここで、number は最後のデバッグコマンドから前に戻ったコマンドの数です。
(dbx) replay -number