ナビゲーションリンクをスキップ | |
印刷ビューの終了 | |
Oracle Solaris Studio 12.3 コードアナライザユーザーズガイド Oracle Solaris Studio 12.3 Information Library (日本語) |
C または C++ プログラムの動的メモリーアクセスデータの収集は、Discover でバイナリに計測機構を組み込む手順と、計測機構付きバイナリを実行する手順の 2 つから成ります。
コードアナライザ用のデータを収集するために Discover でプログラムに計測機構を組み込むには、プログラムを Oracle Solaris Studio 12.3 C または C++ コンパイラでコンパイルしておく必要があります。-g オプションでコンパイルするとデバッグ情報が生成され、動的メモリーアクセスエラーおよび警告に関するソースコードおよび行番号情報をコードアナライザで表示できるようになります。
プログラムが最適化なしでコンパイルされている場合に、Discover はソースコードレベルでもっとも完全なメモリーエラー検出を提供します。最適化を使用してコンパイルした場合、一部のメモリーエラーは検出されません。
Discover で計測機構を組み込むことのできる、またはできないバイナリの種類については、『Oracle Solaris Studio 12.3 Discover および Uncover ユーザーズガイド』の「標準メモリー割り当て関数を再定義するバイナリを使用できる」および『Oracle Solaris Studio 12.3 Discover および Uncover ユーザーズガイド』の「プリロードまたは監査を使用するバイナリは使用できまい」を参照してください。
注 - Discover と Uncover の両方で使用するためのプログラムを 1 回で構築することができます。ただし、すでに計測機構の付いたバイナリに計測機構を組み込むことはできないため、Uncover を使用してカバレージデータの収集も行う予定であれば、Discover でバイナリに計測機構を組む前に Uncover 用のコピーを保存してください。例:
cp a.out a.out.save
バイナリから動的メモリーアクセスデータを収集するには:
Discover で -a オプションを使用してバイナリに計測機構を組み込みます。
discover -a binary_name
注 - Oracle Solaris Studio 12.3 のバージョンの Discover を使用する必要があります。以前のバージョンの Discover では -a オプションは使用できません。
計測機構付きバイナリを実行します。動的メモリーアクセスデータが、binary_name.analyze ディレクトリの dynamic サブディレクトリに書き込まれます。
注 - Discover でバイナリに計測機構を組み込むときに指定できるその他の計測オプションについては、『Oracle Solaris Studio 12.3 Discover および Uncover ユーザーズガイド』の「計測オプション」または discover のマニュアルページを参照してください。-c、-F、-N、または -T オプションを -a オプションとともに使用できます。
動的メモリーアクセスデータを収集したあと、その前に収集した静的コードデータがあればそれも含め (「コードアナライザ GUI の起動」を参照)、コードアナライザ GUI を起動してデータの分析と表示を行うことができます。あるいは、計測機構の付いていないバイナリのコピーを使用して、コードカバレージデータを収集することができます。