JavaScript is required to for searching.
ナビゲーションリンクをスキップ
印刷ビューの終了
Oracle Solaris Studio 12.3 Discover および Uncover ユーザーズガイド     Oracle Solaris Studio 12.3 Information Library (日本語)
search filter icon
search icon

ドキュメントの情報

はじめに

1.  概要

2.  メモリーエラー探索ツール (Discover)

Discover を使用するための要件

バイナリは正しく準備される必要がある

プリロードまたは監査を使用するバイナリは使用できまい

標準メモリー割り当て関数を再定義するバイナリを使用できる

クイックスタート

準備されたバイナリの計測

共有ライブラリのキャッシュ

共有ライブラリの計測

ライブラリの無視

コマンド行オプション

出力オプション

計測オプション

キャッシュオプション

その他のオプション

bit.rc 初期化ファイル

SUNW_DISCOVER_OPTIONS 環境変数

SUNW_DISCOVER_FOLLOW_FORK_MODE 環境変数

計測済みバイナリの実行

Discover レポートの分析

HTML レポートの分析

「エラー (Errors)」タブの使用法

「警告 (Warnings)」タブの使用法

「メモリーリーク (Memory Leaks)」タブの使用法

コントロールパネルの使用法

ASCII レポートの分析

メモリーアクセスエラーと警告

メモリーアクセスエラー

ABR

ABW

BFM

BRP

DFM

FMR

FMW

FRP

IMR

IMW

OLP

PIR

SBR

SBW

UAR

UAW

UMR

メモリーアクセスの警告

AZS

Discover エラーメッセージの解釈

部分的に初期化されたメモリー

スペキュレイティブロード

未計測コード

Discover 使用時の制限事項

注釈付きコードのみが計測される

機械命令はソースコードとは異なる場合がある

コンパイラオプションは生成されたコードに影響を及ぼす

システムライブラリは報告されたエラーに影響を及ぼす可能性がある

カスタムメモリー管理はデータの正確さに影響を及ぼす可能性がある

静的および自動配列範囲外は削除できない

3.  コードカバレッジツール (Uncover)

索引

Discover を使用するための要件

バイナリは正しく準備される必要がある

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() を再定義するバイナリがサポートされます。