11.32.1 UNIXプラットフォーム上でのアプリケーション・プロセスのデバッグ

UNIXシステムの標準デバッグ・コマンドは、dbx(1)です。このツールの詳細は、UNIXシステムのリファレンス・マニュアルでdbx(1)を参照してください。-gオプションを使用してクライアント・プロセスをコンパイルすると、dbx(1)のリファレンス・ページで説明されている手順に従ってこれらのプロセスをデバッグできます。

dbxコマンドを実行するには、次のように入力します。

dbx client

クライアント・プロセスを実行するには:

  1. コード内に必要なブレークポイントを設定します。
  2. dbxコマンドを入力します。
  3. dbxのプロンプト(*)で、runサブコマンド(r)と、クライアント・プログラムのmain()に渡すオプションを入力します。

サーバー・プログラムのデバッグは、これよりも複雑な作業です。通常、サーバーはtmbootコマンドを使用して起動します。このコマンドは、サーバーを正しいマシン上で正しいオプションを使って起動します。dbxを使用する場合は、tmbootコマンドからではなく、サーバーを直接実行する必要があります。サーバーを直接実行するには、dbxコマンドによって表示されるプロンプトの後に、r (runの省略形)を入力します。

Oracle Tuxedoのtmboot(1)コマンドは、サーバーであらかじめ定義されているmain()に、非公開のコマンド行オプションを渡します。サーバーを直接実行するには、これらのオプションをrサブコマンドに手動で渡す必要があります。指定する必要のあるオプションを確認するには、-n-d 1オプションを指定してtmbootを実行します。-nオプションは、tmbootが起動処理を行わないことを指定します。-d 1は、レベル1のデバッグ文を表示することを指定します。デフォルトでは、-d 1オプションは、すべてのプロセスに関する情報を返します。1つのプロセスに関する情報だけが必要な場合は、必要に応じてオプションを追加してリクエストを指定できます。詳細については、『Oracle Tuxedoコマンド・リファレンス』を参照してください

tmboot -n -d 1を実行すると、次の例に示すように、tmbootからサーバーのmain()に渡されるコマンド行オプションのリストが出力されます。

exec server -g 1 -i 1 -u sfmax -U /tuxdir/appdir/ULOG -m 0 -A

必要なコマンド行オプションを確認したら、dbx(1)のrサブコマンドでサーバー・プログラムを直接実行できます。次は、コマンド行の例です。

*r -g 1 -i 1 -u sfmax -U /tuxdir/appdir/ULOG -m 0 -A

構成の一部としてすでに動作中のサーバーを実行する場合は、dbx(1)は使用しません。使用した場合、サーバーは正常に終了して、サーバーが複製されたことを示すメッセージが中央イベント・ログに書き込まれます。