Oracle® Developer Studio 12.5: dbx コマンドによるデバッグ

印刷ビューの終了

更新: 2016 年 6 月
 
 

デバッグ実行の保存と復元

    dbx には、デバッグ実行のすべてまたは一部を保存し、それをあとで再生するための次の 3 つのコマンドが用意されています。

  • save [-number] [filename]

  • restore [filename]

  • replay [-number]

save コマンドの使用

save コマンドは、直前に実行された run コマンド、rerun コマンド、または debug コマンドから save コマンドまでに発行されたデバッグコマンドをすべてファイルに保存します。デバッグセッションのこのセグメントは、「デバッグ実行」と呼ばれます。

発行されたデバッグコマンドのリストに加えて、save コマンドでは、実行開始時のプログラムの状態に関するデバッグ情報 (ブレークポイントや表示リストなど) が保存されます。保存された実行を復元するとき、dbx は、保存ファイル内にあるこれらの情報を使用します。

デバッグ実行の一部、つまり、入力されたコマンドのうち指定する数だけ最後から除いたものを保存することもできます。

image:save コマンドによる完全な実行の保存と、save-2 コマンドによる最後の 2 ステップを除いた実行の保存を示す図

保存する実行の終了位置がわからない場合は、history コマンドを使用して、セッション開始以降に発行されたデバッグコマンドのリストを確認してください。


注 -  デフォルトでは、save コマンドは特殊ファイルに情報を書き込みます。デバッグ実行後に復元可能なファイルへ保存する場合は、save コマンドでファイル名を指定することができます。一連のデバッグ実行をチェックポイントとして保存するを参照してください。

save コマンドは、デバッグ全体を保存する時点で発行します。

(dbx) save

デバッグ実行の一部を保存するには、number オプションを含めます。ここで、numbersave コマンドから前に戻った、保存したくないコマンドの数です。

(dbx) save -number

一連のデバッグ実行をチェックポイントとして保存する

ファイル名を指定せずにデバッグ実行を保存すると、dbx は特殊ファイルに情報を書き込みます。保存するたびに、dbx はこのファイルを上書きします。ただし、save コマンドに filename 引数を指定することにより、filename に保存されたデバッグ実行のあとにほかのデバッグ実行を保存した場合でも、あとで復元できるファイルにデバッグ実行を保存できます。

一連の実行を保存すると、それぞれがセッション内のさらに前から開始する一連のチェックポイントが提供されます。保存されたこれらの実行は任意に復元して続行し、さらに、以前の実行で保存されたプログラム位置と状態に dbx をリセットすることができます。

デフォルト以外のファイルにデバッグ実行を保存するには、ファイル名を含めます。

(dbx) save filename

保存された実行の復元

実行を保存したら、restore コマンドを使用して実行を復元できます。dbx は、その保存ファイル内の情報を使用します。実行を復元すると、dbx は、まず内部状態をその実行の開始時の状態にリセットしてから、保存された実行内の各デバッグコマンドを再発行します。


注 -  source コマンドは、ファイル内に保存された一連のコマンドを再発行しますが、dbx の状態をリセットはしません。これは、現在のプログラム位置からコマンドの一覧を再発行するだけです。

保存されたデバッグ実行を正確に復元するには、run タイプコマンドへの引数、手動入力、およびファイル入力などの、実行での入力すべてが正確に同じである必要があります。


注 -  セグメントを保存してから、runrerun、または debug コマンドを、restore を実行する前に発行すると、restore は 2 番目の引数を使用して、runrerun、または debug コマンドをあとで保存します。これらの引数が異なる場合、正確な復元が得られない可能性があります。

保存されたデバッグ実行を復元するには、次のように入力します。

(dbx) restore

デフォルト以外のファイルに保存されたデバッグ実行を復元するには、次のように入力します。

(dbx) restore filename

replay を使用した保存と復元

replay コマンドは、save -1 を発行したあと、ただちに restore を発行するのと同じ、組み合わせのコマンドです。replay コマンドは、負の number 引数をとります。これは、コマンドの save の部分に渡されます。デフォルトでは、-number の値は -1 であるため、replay コマンドは元に戻すコマンドとして機能し、最後の実行を最後に発行されたコマンドまで (ただし、このコマンドは除く) 復元します。

現在のデバッグ実行を、最後に発行されたデバッグコマンドを除いて再生するには、次のように入力します。

(dbx) replay

現在のデバッグ実行を再生し、特定のコマンドの前で実行を停止するには、–number オプションを使用します。ここで、number は最後のデバッグコマンドから前に戻ったコマンドの数です。

(dbx) replay -number