ナビゲーションリンクをスキップ | |
印刷ビューの終了 | |
Oracle Solaris Studio 12.3 Discover および Uncover ユーザーズガイド Oracle Solaris Studio 12.3 Information Library (日本語) |
SUNW_DISCOVER_FOLLOW_FORK_MODE 環境変数
「メモリーリーク (Memory Leaks)」タブの使用法
システムライブラリは報告されたエラーに影響を及ぼす可能性がある
Discover は、Sun Studio 12 Update 1、Oracle Solaris Studio 12.2、Oracle Solaris Studio 12.3 コンパイラ、または GCC for Sun Systems コンパイラのバージョン 4.2.0 以降を使用してコンパイルされたバイナリ上で機能します。Solaris 10 10/08 オペレーティングシステムまたはそれ以降の Solaris 10 update、または Oracle Solaris 11 を実行している、SPARC ベースシステムまたは x86 ベースシステムで機能します。
これらの要件が満たされない場合、Discover でエラーが発生するか、またはバイナリが計測されません。ただし、-l オプション (「計測オプション」を参照) を使用することによって、これらの要件を満たさないバイナリを計測し、それを実行して限定された数のエラーを検出できます。
前述のようにコンパイルされたバイナリには、注釈と呼ばれる情報が含まれ、Discover がバイナリを正しく計測するのに役立っています。このわずかな情報が追加されることで、バイナリのパフォーマンスまたは実行時のメモリー使用量に影響を及ぼすことはありません。
バイナリのコンパイル時に -g オプションを使用してデバッグ情報を生成することにより、Discover はエラーおよび警告を報告しながらソースコードおよび行番号情報を表示し、より正確な結果を生成することができます。バイナリが -g オプションを使用してコンパイルされない場合、Discover には、対応する機械レベルの命令のプログラムカウンタのみが表示されます。また、-g オプションを使用してコンパイルすることにより、Discover はより正確なレポートを生成できます (「Discover エラーメッセージの解釈」を参照)。
Discover は実行時リンカーの一部の特定の機能を使用するため、プリロードまたは監査を使用するバイナリと併用することはできません。
プログラムが LD_PRELOAD 環境変数の設定を必要とする場合は、Discover を使用して適切に機能しない可能性があります。それは Discoverは特定のシステム関数に割り込む必要があり、関数がプリロードされている場合は割り込めないためです。
同様に、プログラムが実行時監査を使用している (バイナリが -p オプションまたは -P オプションとリンクされているか、LD_AUDIT 環境変数を設定する必要がある) 場合、この監査は Discover の監査の使用と衝突します。バイナリが監査とリンクされている場合、Discover は計測時に失敗します。実行時に LD_AUDIT 環境変数を設定している場合、結果は定義されません。
Discover では、標準メモリー割り当て関数 malloc()、calloc()、memalign()、valloc()、および free() を再定義するバイナリがサポートされます。