JavaScript is required to for searching.
ナビゲーションリンクをスキップ
印刷ビューの終了
Oracle Solaris Studio 12.2: dbx コマンドによるデバッグ
search filter icon
search icon

ドキュメントの情報

はじめに

1.  dbx の概要

2.  dbx の起動

デバッグセッションを開始する

既存のコアファイルのデバッグ

同じオペレーティング環境でのコアファイルのデバッグ

コアファイルが切り捨てられている場合

一致しないコアファイルのデバッグ

共有ライブラリ問題の回避

注意点

プロセス ID の使用

dbx 起動時シーケンス

起動属性の設定

デバッグ時ディレクトリへのコンパイル時ディレクトリのマッピング

dbx 環境変数の設定

ユーザー自身の dbx コマンドを作成

デバッグのためのプログラムのコンパイル

-g オプションでコンパイル

別のデバッグファイルの使用

別のデバッグファイルの作成

最適化コードのデバッグ

パラメータと変数

インライン関数

-g オプションを使用しないでコンパイルされたコード

dbx を完全にサポートするために -g オプションを必要とする共有ライブラリ

完全にストリップされたプログラム

デバッグセッションを終了する

プロセス実行の停止

dbx からのプロセスの切り離し

セッションを終了せずにプログラムを終了する

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

save コマンドの使用

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

保存された実行の復元

replay を使用した保存と復元

3.  dbx のカスタマイズ

4.  コードの表示とコードへの移動

5.  プログラムの実行制御

6.  ブレークポイントとトレースの設定

7.  呼び出しスタックの使用

8.  データの評価と表示

9.  実行時検査

10.  修正継続機能 (fix と cont)

11.  マルチスレッドアプリケーションのデバッグ

12.  子プロセスのデバッグ

13.  OpenMP プログラムのデバッグ

14.  シグナルの処理

15.  dbx を使用してプログラムをデバッグする

16.  dbx を使用した Fortran のデバッグ

17.  dbx による Java アプリケーションのデバッグ

18.  機械命令レベルでのデバッグ

19.  dbx の Korn シェル機能

20.  共有ライブラリのデバッグ

A.  プログラム状態の変更

B.  イベント管理

C.  コマンドリファレンス

索引

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

dbx には、デバッグ実行の全部または一部を保存して、それをあとで再現するためのコマンドが 3 つあります。

save コマンドの使用

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

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

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

完了した実行を保存する save コマンド、および最後の 2 ステップを除く実行を保存する save -2 コマンド

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


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


save コマンドまでのデバッグ実行のすべてを保存するには、次のように入力します。

(dbx) save

デバッグ実行の一部を保存するには、save number コマンドを使用します。number は、save コマンドの直前の、保存しないコマンドの数を示します。

(dbx) save -number

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

ファイル名を指定しないでデバッグ実行を保存すると、情報は特殊な保存ファイルに書き込まれます。保存のたびに、dbx はこの保存ファイルを上書きします。しかし、save コマンドに filename 引数を指定すると、あるデバッグ実行をこの filename に保存後、別のデバッグ実行を保存しても、前の内容を復元することができます。

一連の実行を保存すると、1 組のチェックポイントが与えられます。各チェックポイントは、セッションのさらにあとから始まります。保存されたこれらの実行は任意に復元して続行し、さらに、以前の実行で保存されたプログラム位置と状態に 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

現在のデバッグ実行を再現して、指定のコマンドの前で実行を停止するには、dbxreplay コマンドを使用します。ここで、number は、最後のデバッグコマンドから数えていくつめのコマンドで停止するかその数を示します。

(dbx) replay -number