Oracle Solaris Studio 12.2: dbx コマンドによるデバッグ

接続されたプロセスへの RTC の使用

実行時検査は、影響を受けるメモリーがすでに割り当てられている場合に RUI が検出できなかった例外を伴う接続済みプロセスで機能します。ただし、実行時検査を開始する際、rtcaudit.so を事前に読み込んでおく必要があります。接続先のプロセスが 64 ビットプロセスである場合、次の場所にある 64 ビットの rtcaudit.so を使用します。

64 ビット SPARC プラットフォームの /installation_directory/lib/dbx/sparcv9/runtime/rtcaudit.so

AMD64 プラットフォームの /installation_directory/lib/dbx/amd64/runtime/rtcaudit.so

32 ビットプラットフォームの /installation_directory/lib/dbx/runtime/rtcaudit.so

rtcaudit.so を事前に読み込むには、次のように入力します。


% setenv LD_AUDIT path-to-rtcaudit/rtcaudit.so

rtcaudit.so を常時読み込んだ状態にせず、必要なときにだけ読み込まれるように環境変数 LD_AUDIT を設定してください。次に例を示します。


% setenv LD_AUDIT...
% start-your-application
% unsetenv LD_AUDIT

プロセスに接続したら、RTC を有効にすることができます。

接続したいプログラムがフォークされるか、または別のプログラムによって実行された場合は、LD_AUDIT をフォークを行うメインプログラムに設定する必要があります。LD_AUDIT の設定値は、フォーク先および実行主体を問わず継承されます。

環境変数 LD_AUDIT は 32 ビットプログラムと 64 ビットプログラムの両方に適用されるため、64 ビットプログラムを実行する 32 ビットプログラム用、または 32 ビットプログラムを実行する 64 ビットプログラム用に正しいライブラリを選択することが困難です。Solaris OS のバージョンによっては、環境変数 LD_AUDIT_32 をサポートしているものと環境変数 LD_AUDIT_64 をサポートしているものがあり、それぞれ 32 ビットプログラムと 64 ビットプログラムのみを対象としています。実行している Solaris OS のバージョンで、これらの変数がサポートされているかどうか確認するには、『リンカーとライブラリ』を参照してください。