マニュアルページ dbx.1
名前
dbx - ソースレベル・デバッグ用ツール
形式
dbx [ -B ] [ -c cmd ] [ -C ] [ -d ] [ -e ] [ -f ] [ -h ] [
-Idir ] [ -k ] [ -q ] [ -r ] [ -R ] [ -s startup ] [ -S ] [
-V ] [ -wcount ] [ -x exec32 ] [ execfile [ .class | .jar ]
[ corefile | process-id ] ] [ arguments ]
機能説明
dbx は、C++、 ANSI C、 Fortran 77 、Fortran 90 と Java で 書
か れ たプログラムのソースレベルでのデバッグと実行を行うユー
ティリティーです。
execfile は、Sun Compiler で execfile または関連するオブジェ
クトファイルにデバッグ用シンボルを出力する -g オプションを付
けてコンパイルされた実行可能ファイルです。Java コー ド の 場
合、 execfile は .class または .jar ファイルです。このシンボ
ルテーブルには、 execfile を作成するのに使用されたすべ て の
ソースファイルの名前 (すべて中身を見ることができる) と、さま
ざまなデバッグ情報が含まれています。 -g オプションでコンパイ
ルされていないプログラムでは、限られた一部のデバッグ機能しか
使用することができません。
シンボルテーブル情報は、コンパイラが作成する各オブジェ ク ト
ファイルの中に少しずつ格納されます。コンパイルでオブジェクト
ファイルが生成されない場合、すべてのデバッグ情報は execfile
に格納されます。デバッグ情報をオブジェクトファイルに分散する
ことにより、 dbx は、デバッグ情報を必要に応じて読み取りま た
はロードできます。この機能のことを、「自動読み取り」といいま
す。オブジェクトファイルを元の位置から移動する必要がある場合
は、 dbx にその場所を指定してください ( pathmap コマンド参照
)。 -xs オプションによって、自動読み込みを使用しないようにす
る こ と ができます。 -xs オプションを指定してコンパイルする
と、リンカーはすべてのデバッグ情報を実行可能ファイルに格納し
ます。
dbx の起動時に execfile を指定しなかった場合、デバッグするプ
ログラムを指定するには、 debug コマンドを使用します。
procss-id のプロセスをデバッグす る 場 合 に、 ファ イ ル 名
execfile が分からない場合、 - (ダッシュ) を execfile の代わ
りに指定し、プロセス ID process-id をオプションの引数とし て
入力すると、そのプロセスを dbx に接続することができます。
コアファイル corefile が引数として指定された場合、 dbx は、
コアファイルが作成されたときのプログラムの状態を調べることが
できます。
-r オプションを指定したときのみ、プログラムに渡される argu-
ments を指定できます。Java プログラムの場合、JVM[tm] ソフト
ウェアに渡される引数ではなく、プログラムに渡される引数だけを
指定します。
dbx は起動時に、インストールディレクトリで最初に .dbxrc を検
索 します。.dbxrc が見つからない場合、dbx は ./.dbxrc を検索
します (ksh モード)。./.dbxrc が見つからないと、dbx は 警 告
メッセージを出力し、~/.dbxrc を検索します (dbx モード)。
実行時検査 (RTC) は、ブレークポイントの設定や変数の検査を 行
うことができる、 dbx の機能です。 RTC を使用すれば、どの段階
でもアプリケーションの実行時のエラーを発見することがで き ま
す。さらに、メモリーの使用状況を監視することもできます。
コンパイル時に -g オプションを使用すると、エラーに関連してい
るソース行の番号がエラーメッセージに表示されます。 RTC は -O
最適化オプションでコンパイルしたプログラムを検査することもで
き ます。 RTC を使用するために、コンパイルやリンクをやり直し
たり、メークファイルを変更したりする必要はありません。
RTC が適切に動作するためには、 libc を動的にリンクし、標準の
libc 関数 malloc/free/realloc を使用する必要があります。
RTC を使用するには、プログラムを実行する前に dbx セッショ ン
で check type-of-checking コマンドを実行してください。 dbx
を -C オプション付きで起動すると、RTC ライブラリを起動時に読
み込むことができます。また、RTC をバッチモードで使用すること
も可能です。詳細は bcheck(1) を参照してください。
アクセス検査は SPARC アーキテクチャー上でのみサポートされ て
います。
使用条件
Sun Studio 11 の dbx は次のプラットフォームで使用できます。
o Solaris[tm] オペレーティングシステム、version 9 お よ び
version 10 1/06
o Linux オペレーティングシステム:
SUSE Linux Enterprise Server 9 Service Pack 3
RedHat Enterprise Linux 4
オプション
B すべてのメッセージを抑制し、デバッグ対象プログラ
ムの終了コードで復帰します。
-c cmd プログラムを読み込んだ後、入力用のプロンプトを表
示 す る 直前に cmd で指定したコマンドを実行しま
す。 cmd に複数の dbx コマンドを指定する場合、コ
マンドの文字列を引用符で囲み、各コマンドをセミコ
ロンで区切ってください。コマンド内に $ (ドル記号
) がある場合には、引用符は無効になるので、複数の
コマンドを囲んで指定することはできません。
-C RTC ライブラリの読み込みを早い段階に(起動時に)行
います (これによって実行時検査が有効になるわけで
はありません)。起動時に読み込まない場合 は、 RTC
ラ イブラリは check コマンドの設定の後、次の実行
時に読み込まれます。
-d startup を処理した後に削除します。
-e 入力コマンドを表示します。
-f 一致していない場合もコアファイルを強制的に読み込
みます。
-h 入力を求めるプロンプトの前にヘルプを表示します。
-I dir ソースファイルを検索するディレクトリのリス ト に
dir を追加します。通常、 dbx は現在のディレクト
リと execfile が存在するディレクトリしか検索しま
せ ん。ディレクトリ検索パスは、 pathmap コマンド
でも設定できます。
-k キーボードをアップダウン変換モードにしてプログラ
ムをデバッグします。このオプションは、プログラム
がアップダウンコード解析を使用する場合に必 要 で
す。
-q 非出力 (quiet) モード。"シンボルテーブルを読み込
んでいます" と "プロセス xx を接続しました" とい
うことを示す 2 つのメッセージを抑制します。
-r execfile をすぐに実行します。 execfile ファイ ル
名の後にはパラメータ (リダイレクトも含む) を続け
ます。プログラムが正常終了した場合、 dbx は終 了
し ます。正常終了しなかった場合、 dbx は終了の理
由を報告して、応答を待ちます。
-R dbx の README ファイルを表示します。
-s startup .dbxrc の代わりに、 startup スクリプトから初期化
コマンドを読み込みます。
-S 標準でインストールされた .dbxrc の読み取りを抑制
します。
-V dbx のバージョンを表示します。
-w where コマンドの実行時に、ここで指定した最初の N
個のフレームをスキップします。
-xexec32 64 ビットの OS が稼働するシステムでデフォルト で
実 行 さ れる 64 ビット dbx バイナリではなく、32
ビット dbx バイナリを実行します。
使用法
主に使用する基本的なコマンドは、次のとおりです。
run デバッグするプログラムを実行
where 行番号付きスタックトレース
print 変数を出力
stop ブレークポイントを設定
スコープ決定規則
dbx は、スコープ(有効範囲)の衝突を現在のファイルと関数にもと
づいて解析します。これらの値は、実行時にファイルや関数が実行
され、終了するたびに更新されます。 file や func コマンドを使
用して、明示的にこれらの値を変更することもできます。現在の関
数が変更されると、現在のファイルも同時に変更されます。また、
現在のファイルが変更されると、関数も同時に変更されます。
スレッド ID
いくつかのコマンドでは、 id が指定される と、 ス レッ ド ID
(tid) または軽量プロセス (LWD) ID (lid) を参照する場合があり
ます。これらは、t@N または l@N という形式を取ります。
ハンドラ ID
イベントハンドラは、整数番号 hid によって認識 さ れ ま す (
status 、 delete または handler コマンドを参照)。SH "コマン
ド" すべての dbx コマンドをリストするには、 dbx コマンド行で
help コマンドを入力します。
制限事項
Linux プラットフォームでは、dbx の次の機能は利用できません。
o 修正継続
o Java デバッグ
o コアファイルのデバッグ
Linux プラットフォームおよび Solaris OS x86 プラットフォーム
版では、メモリーアクセス検査は使用できません。
環境
dbx は、環境変数 EDITOR を検査して、 edit コマンドで使用する
エ ディ タを決定します。環境変数 TMPDIR (設定されている場合)
に指定されているディレクトリは、 dbx で必要な一時ファイル の
位置として /tmp の代わりに使用されます。ksh 環境の変数もいく
つか使用されます。dbx 関連の環境変数の設定については、dbx コ
マンド行で
"help dbxenv" と入力してください。
ファイル
.dbxrc ローカルの dbx 初期化ファイル
~/.dbxrc ユーザー独自の dbx 初期化ファイル
libcollector.so collector コマンドで使用される共有ライブ
ラリ
libdbx_agent.so Java のデバッグに使用される共有ライブ ラ
リ
librtc.so RTC ( check コマンド) 用に使用される共有
ライブラリ
libdbxadb.so adb コマンドで使用される共有ライブラリ
libdbxFintr.so Fortan 組み込み関数呼び出し用に使用さ れ
る共有ライブラリ
debugging.so dbx の開発者向け。 dbx の問題を診断す る
ときに役に立つライブラリ
関連項目
bcheck(1)、 csh(1)、 dbxrc(4)、 dbxinit(4)、 workshop(1)、
kill(1)、 ksh(1)、 make(1S)、 rtc_patch_area(1)