dbx [ -a args ] [ -B ] [ -c cmd ] [ -C ] [ -d ] [ -e ] [ -f ] [ -h ] [ -Idir ] [ -k ] [ -q ] [ -Q ] [ -r ] [ -R ] [ -s startup ] [ -S ] [ -V ] [ -wcount ] [ -x exec32 ] [ execfile [ .class | .jar ] [ corefile | process-id ] ] [ arguments ]
Oracle Solaris Studio dbx は、C++、ANSI C、Fortran 77、Fortran 95、および Java プログラミング言語で記述されたプログラムのソースレベルのデバッグと実行を行うためのユーティリティーです。
execfile は、execfile またはそれに関連付けられたオブジェクトファイル内にデバッグシンボルを含める -g オプションを使用して Solaris Studio コンパイラによって生成された実行可能ファイルです。Java コードの場合は、.class または .jar ファイルを指定できます。シンボルテーブルには、execfile を作成するために使用されたすべてのソースファイルの名前 (このすべてを参照できます) のほか、広範囲なデバッグ情報が含まれています。プログラムのうちの -g オプションでコンパイルされていない部分に対するデバッグサポートは制限されます。
最初、シンボルテーブル情報は、コンパイラが作成する各オブジェクトファイル内に個別に格納されます。コンパイルによってオブジェクトファイルが作成されない場合は、すべてのデバッグ情報が execfile 内に格納されます。デバッグ情報をオブジェクトファイル内に分散させることにより、dbx は、必要に応じてデバッグ情報を読み取ってロードすることができます (この機能を「自動読み取り」と呼びます)。オブジェクトファイルを元の場所から移動する必要がある場合は、それらのファイルを検索する場所を dbx が認識できるようにしてください。(pathmap コマンドを参照)。プログラムの .o ファイルを保持しておく余裕がない場合は、-xs オプションを使用してコンパイルすることにより、自動読み取りを無効にすることができます。このオプションは、リンカーにすべてのデバッグ情報をプログラム実行可能ファイル内に配置させるようコンパイラに指示します。
dbx の起動時に execfile を指定しない場合は、debug コマンドを使用してデバッグ対象のプログラムを指定します。
process-id はわかっているが、execfile がわからない場合は、execfile として - (ダッシュ) を使用し、process-id オプションを入力してそのプロセスを dbx に接続することができます。
corefile 引数を指定する場合は、dbx を使用して、そのコアファイルが生成された時点のプログラムの状態を検査することができます。
プログラムに渡される arguments は、-r オプションを指定する場合にのみ指定できます。Java プログラムの場合は、JVM[tm] ソフトウェアに渡される引数ではなく、そのプログラムに渡される引数のみを指定します。
起動中、dbx は、まずインストールディレクトリ内で .dbxrc を検索します。.dbxrc が見つからない場合、dbx は ./.dbxrc を検索します (ksh モード)。./.dbxrc が見つからない場合、dbx は警告メッセージを出力し、~/.dbxrc を検索します (dbx モード)。
実行時検査 (RTC) は、ブレークポイントや検査変数を設定するためのそのすべての機能を使用した、dbx の完全に統合された機能です。RTC を使用すると、アプリケーション内のどの段階の実行時エラーでも検出できます。さらに、メモリー使用もモニターできます。
-g フラグにより、エラーメッセージでのソース行番号の関連性が提供されます。RTC は、最適化 -O フラグでコンパイルされたプログラムを検査できます。RTC を使用するために Makefile を再コンパイル、再リンク、または変更する必要はありません。
RTC が適切に動作するためには、libc を使用した動的リンク、および標準 libc 関数 malloc/free/realloc の使用が必要です。
RTC を使用するには、プログラムを実行する前に、dbx 内で check type-of-checking コマンドを発行します。また、RTC ライブラリの早期ロードのために、-C オプションで dbx を起動することも推奨されます。あるいは、バッチモードで RTC を使用することもできます。bcheck (1) を参照してください。アクセス検査は、SPARC ハードウェアアーキテクチャー上でのみサポートされています。
Solaris Studio dbx は、次のプラットフォーム上で使用できます。
Solaris[tm] オペレーティングシステム、バージョン 10 10/08 およびバージョン 11
Linux オペレーティングシステム:
Oracle Linux 5 および 6
RedHat Enterprise Linux 5 および 6
プログラム引数を付けてプログラムをロードします。引数はプログラム名に従うべきです。
すべてのメッセージを抑止します。デバッグするプログラムの exit コードを返します。
プログラムをロードしたあとで、かつ入力を求める直前に cmd を実行します。cmd が複数ある場合は、コマンドの文字列の前後に引用符を使用し、各文字列をセミコロンで区切ります。コマンドに $ (ドル記号) が含まれていると、引用符は機能しません。
RTC ライブラリの早期ロードが実行されるようにします。(これによって検査が有効になるわけではありません)。起動時に使用されない場合、RTC ライブラリは、check コマンドのあとの次回の実行でロードされます。
startup を処理してから削除します。
入力コマンドをエコーします。
コアファイルが一致しない場合でも、それを強制的にロードします。
入力を求める前にヘルプを出力します。
ソースファイルを検索するためのディレクトリのリストに dir を追加します。dbx は通常、現在のディレクトリと、execfile が配置されているディレクトリを検索します。ディレクトリ検索パスは、pathmap コマンドでリセットできます。
キーボードを上下の平行移動モードに設定するプログラムをデバッグします。プログラムで上下のデコードを使用する場合は必要です。
非出力モード、つまり「...のシンボルテーブルの読み取り中」と「...に接続しました」の 2 つのロードメッセージの無音エコー。
起動時や、debug または attach の時点でシンボリック情報はロードされません。シンボリック情報は、必要に応じて prog -readsyms を使用してロードできます。これは、dbxenv 変数 run_quick を on に設定することと同等です。
execfile をただちに実行します。パラメータは、execfile の名前 (リダイレクションを含む) のあとに指定します。プログラムが正常に終了した場合、dbx は終了します。障害が発生した場合、dbx は原因を報告し、応答を待ちます。
README ファイルを出力します。
初期化コマンドを .dbxrc からではなく、ファイル startup スクリプトから読み取ります。
サイト固有の .dbxrc の読み取りを抑制します。
使用されている dbx のバージョンを出力します。
カウント - where コマンド内の先頭 N フレームをスキップします。
64 ビット OS を実行しているシステム上でデフォルトで実行される 64 ビットの dbx バイナリの代わりに、32 ビットの dbx バイナリを実行します。
知っておくべき基本的なコマンドは次のとおりです。
デバッグされているプログラムを実行します。
行番号を含むスタックトレースを取得します。
変数を表示します。
ブレークポイントを設定します。
dbx は、現在のファイルと関数の値に基づいて、スコープの競合を解決します。これらの値は、実行中にファイルと関数が開始および終了した時点で更新されます。また、file および func コマンドを使用して、これらの値を明示的に変更することもできます。現在の関数が変更されると、現在のファイルがそれに従って更新され、またその逆も同様です。
一部のコマンドでは、id の使用がスレッド ID (tid) または軽量プロセス ID (lid) を示します。これらは、t@N または l@N の形式を取ります。
イベントハンドラは、整数 hid で識別されます (status、delete、および handler コマンドを参照)。
すべての dbx コマンドの一覧を表示するには、dbx コマンド行で help commands と入力します。
dbx の次の機能は、Linux プラットフォーム上では使用できません。
修正継続
Java のデバッグ
コアファイルのデバッグ
メモリーアクセス検査は、Linux プラットフォームまたは Solaris OS x86 Platform Edition 上では使用できません。
dbx は、環境変数 EDITOR を検査して、edit コマンドで使用するテキストエディタの名前を調べます。環境変数 TMPDIR (設定されている場合) は、dbx に必要な一時ファイルの場所である /tmp を置き換えるために使用されます。また、いくつかの ksh 環境変数も使用されます。dbx 環境変数の設定に関する情報を表示するには、dbx コマンド行で「help dbxenv」と入力します。
ローカルの dbx 初期化ファイル
ユーザーの dbx 初期化ファイル
collector コマンドで使用される共有ライブラリ
Java のデバッグに使用される共有ライブラリ
RTC (check コマンド) に使用される共有ライブラリ
adb コマンドで使用される共有ライブラリ
Fortran 組み込み関数の呼び出しに使用される共有ライブラリ
dbx エンジニアが dbx の問題を追跡するときのデバッグ支援
bcheck(1), csh(1), kill(1), ksh(1), make(1S), rtc_patch_area(1), dbxrc(4)