Oracle® Developer Studio 12.5: dbx コマンドによるデバッグ

印刷ビューの終了

更新: 2016 年 6 月
 
 

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

実行時検査は、影響を受けるメモリーがすでに割り当てられている場合は rui を検出できないという例外を除き、接続されたプロセスに対して機能します。

Oracle Solaris を実行しているシステム上の接続されたプロセス

Oracle Solaris オペレーティングシステムを実行しているシステムでは、プロセスの開始時に、そのプロセスに rtcaudit.so がプリロードされている必要があります。接続しようとしている先のプロセスが 64 ビットプロセスである場合は、適切な 64 ビットの rtcaudit.so を使用します。これは次の場所にあります。

64 ビット SPARC プラットフォーム: /install-dir/lib/dbx/sparcv9/runtime/rtcaudit.so

AMD64 プラットフォーム: /install-dir/lib/dbx/amd64/runtime/rtcaudit.so

32 ビットプラットフォーム: /install-dir/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 の設定値は、フォーク先および実行主体を問わず継承されます。32 ビットプログラムが 64 ビットプログラムをフォークまたは実行する場合、あるいは 64 ビットプログラムが 32 ビットプログラムをフォークまたは実行する場合には、この方法は機能しないことがあります。

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

Linux を実行しているシステム上の接続されたプロセス

Linux オペレーティングシステムを実行しているシステムでは、プロセスの開始時に、そのプロセスに librtc.so がプリロードされている必要があります。接続先のプロセスが AMD64 プロセッサで実行中の 64 ビットプロセスである場合、次の場所にある適切な 64 ビットの librtc.so を使用します。

64 ビット AMD64 プラットフォーム: /install-dir/lib/dbx/amd64/runtime/librtc.so

32 ビット AMD64 プラットフォーム: /install-dir/lib/dbx/runtime/librtc.so

librtc.so をプリロードするには、次のように入力します。

% setenv LD_PRELOAD path-to-rtcaudit/librtc.so

必要な場合のみ、librtc.so をプリロードするための LD_PRELOAD 環境変数を設定します。これを常にロードされたままにしないでください。例:

% setenv LD_PRELOAD...
% start_your_application
% unsetenv LD_PRELOAD

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

接続する先のプログラムがほかの何らかのプログラムからフォークまたは実行されている場合は、フォークするメインプログラムに LD_PRELOAD を設定する必要があります。 LD_PRELOAD の設定値は、フォーク先および実行主体を問わず継承されます。この解決方法は、32 ビットプログラムが 64 ビットプログラムをフォークまたは実行している場合や、64 ビットプログラムが 32 ビットプログラムをフォークまたは実行している場合は機能しない可能性があります。

環境変数 LC_PRELOAD は 32 ビットプログラムと 64 ビットプログラムの両方に適用されるため、64 ビットプログラムを実行する 32 ビットプログラム用、または 32 ビットプログラムを実行する 64 ビットプログラム用に正しいライブラリを選択することが困難です。Linux の一部のバージョンは、LD_PRELOAD_32 環境変数と LD_PRELOAD_64 環境変数をサポートしています。これらは、それぞれ 32 ビットプログラムと 64 ビットプログラムにのみ影響を与えます。実行している Linux のバージョンで、これらの変数がサポートされているかどうか確認するには、『リンカーとライブラリ』を参照してください。