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

印刷ビューの終了

更新: 2015 年 1 月
 
 

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 のバージョンで、これらの変数がサポートされているかどうか確認するには、『リンカーとライブラリ』を参照してください。