マニュアルページ 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)