# マニュアルページ dbx.1

## 名前

         dbx - ソースレベル・デバッグ用ツール

## 形式

         dbx [ -c  cmd ] [ -C ] [ -d ] [ -e ] [ -f ] [ -h ] [ -Idir ]
         [  -k  ] [ -q ] [ -r ] [ -R ] [ -s startup ] [ -S ] [ -V ] [
         -wcount ] [ -x exec32 ] [ execfile [ .class | .jar ] [ core-
         file | 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 アーキテクチャ上でのみサポートされて い
         ます。

## オプション

         -c cmd      プログラムを読み込んだ後、入力用のプロンプトを表
                     示 す る 直前に cmd で指定したコマンドを実行しま
                     す。 cmd に複数の dbx コマンドを指定する場合、コ
                     マ ンドの文字列を 2 重引用符で囲み、各コマンドを
                     セミコロンで区切ってください。コマンド内に $ (ド
                     ル記号) がある場合には、2 重引用符は無効になるの
                     で、複数のコマンドを囲んで指定することはできませ
                     ん。

         -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    SPARC-V9 バイナリをサポートするシステム上で実 行
                     さ れる 64 ビット dbx バイナリの使用を抑制し、代
                     わりに SPARC-V8 32 ビットバイナリを使用します。

## 使用法

         主に使用する基本的なコマンドは、次のとおりです。

         run         デバッグするプログラムを実行

         where       行番号付きスタックトレース

         print       変数を出力

         stop        ブレークポイントを設定

      スコープ決定規則
         dbx は、スコープ(有効範囲)の衝突を現在のファイルと関数にもと
         づいて解析します。これらの値は、実行時にファイルや関数が実行
         され、終了するたびに更新されます。 file や func コマンドを使
         用して、明示的にこれらの値を変更することもできます。現在の関
         数が変更されると、現在のファイルも同時に変更されます。また、
         現在のファイルが変更されると、関数も同時に変更されます。

      スレッド ID
         いくつかのコマンドでは、 id が指定される と、 ス レッ ド  ID
         (tid) または軽量プロセス (LWD) ID (lid) を参照する場合があり
         ます。これらは、t@N または l@N という形式を取ります。

      ハンドラ ID
         イベントハンドラは、整数番号 hid によって認識 さ れ ま す  (
         status 、 delete または handler コマンドを参照)。

## コマンド

         すべての dbx コマンドをリストするには、 dbx コマ ン ド 行 で
         help コマンドを入力します。

## 環境

         dbx は、環境変数 EDITOR を検査して、 edit コマンドで使用する
         エ ディ タを決定します。環境変数 TMPDIR (設定されている場合)
         に指定されているディレクトリは、 dbx で必要な一時ファイル の
         位置として /tmp の代わりに使用されます。ksh 環境の変数もいく
         つか使用されます。

## ファイル

         .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)