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)

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

Uncover を使用するための要件

Uncover の使用法

バイナリの計測

計測済みバイナリの実行

カバレージレポートの生成と表示

パフォーマンスアナライザのカバレージレポートを理解する

「関数」タブ

「カバレージ外 (Uncoverage)」カウンタ

「関数カウント (Function Count)」カウンタ

「命令の実行 (Instr Exec)」カウンタ

「カバーされているブロックの割合 (%) (Block Covered %)」カウンタ

「カバーされている命令の割合 (%) (Instr Covered %)」カウンタ

「ソース」タブ

「逆アセンブリ」タブ

「命令頻度」タブ

ASCII カバレージレポートを理解する

HTML カバレージレポートを理解する

Uncover 使用時の制限事項

注釈付きコードのみ計測可能

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

例 1

例 2

例 3

索引

Uncover の使用法

Uncover を使用してカバレージ情報を生成するには、3 ステップのプロセスがあります。

  1. バイナリの計測

  2. 計測済みバイナリの実行

  3. カバレージレポートの生成と表示

バイナリの計測

入力バイナリは、実行可能ファイルまたは共有ライブラリとすることができます。分析したいバイナリの計測は個別に行う必要があります。

uncover コマンドを使用してバイナリを計測します。たとえば、次のコマンドは、バイナリ a.out を計測し、入力 a.out を計測済み a.out で上書きします。また、このコマンドは、接尾辞 .uc を持つディレクトリ (この場合は a.out.uc) を作成します。この中に、カバレージデータが収集されます。入力バイナリのコピーはこのディレクトリに保存されます。

uncover a.out

バイナリに計測機構を組み込むとき、次のオプションを使用できます。

-c

命令、ブロック、および関数の実行カウントの報告をオンにします。デフォルトでは、カバーされているコードまたはカバーされていないコードの情報だけが報告されます。(バイナリに計測機構を組み込むときとカバレージレポートを生成するときの両方で、このオプションを指定します。)

-d directory

directory 内にカバレージデータディレクトリを作成するよう Uncover に指示します。このオプションは、複数のバイナリ用のカバレージデータを収集する場合に役立ち、カバレージデータディレクトリのすべてが同じディレクトリ内に作成されるようにします。また、異なる場所から同じ計測済みバイナリの異なるインスタンスを実行する場合、このオプションを使用すると、これらの実行のすべてから取得されるカバレージデータが同じカバレージデータディレクトリに確実に蓄積されるようになります。

-d オプションを使用しない場合、カバレージデータディレクトリは現在の実行ディレクトリに作成されます。

-m on | off

スレッドセーフなプロファイリングをオンまたはオフにします。デフォルトはオンです。このオプションは -c 実行時オプションと組み合わせて使用します。スレッドを使用するバイナリに -m off で計測機構を組み込むと、バイナリは実行時に失敗し、バイナリに -m on で計測機構を組み込み直すよう指示するメッセージが表示されます。

-o output_binary_file

指定されたファイルに計測機構付きバイナリファイルを書き込みます。デフォルトでは、入力バイナリファイルが計測機構付きファイルで上書きされます。

すでに計測されている入力バイナリ上で uncover コマンドを実行する場合、Uncover はすでに計測されているためバイナリを計測できないことと、そのバイナリを実行してカバレージデータを生成できることを伝えるエラーメッセージを発行します。

計測済みバイナリの実行

バイナリを計測した後で、それを正常に実行できます。計測済みバイナリを実行するたびに、コードカバレージデータは、Uncover が計測中に作成した .uc 接尾辞を持つカバレージデータディレクトリに収集されます。Uncover データコレクションは、マルチスレッドおよびマルチプロセスに対して安全であるため、プロセスの同時実行またはスレッド数に制限はありません。カバレージデータは実行およびスレッドのすべてにわたって蓄積されます。

カバレージレポートの生成と表示

カバレージレポートを生成するには、カバレージデータディレクトリ上で uncover コマンドを実行します。例:

uncover a.out.uc

このコマンドは、a.out.uc ディレクトリのカバレージデータから binary_name.er と呼ばれる Oracle Solaris Studio パフォーマンスアナライザ実験ディレクトリを生成し、パフォーマンスアナライザ GUI を起動して、実験を表示します。現作業ディレクトリまたはホームディレクトリに .er.rc ファイル (『Oracle Solaris Studio 12.2 パフォーマンスアナライザ』のマニュアルを参照) がある場合は、アナライザが実験を表示する方法に影響を及ぼす場合があります。

また、uncover コマンドオプションを使用すると、レポートを HTML 形式で生成して Web ブラウザで表示したり、ASCII 形式で生成して端末ウィンドウで表示したりすることができます。または、データをディレクトリに書き込み、コードアナライザで分析と表示を行うことができます。

-a

コードアナライザで使用するためにエラーデータを binary_name.analyze/coverage ディレクトリに書き込みます。

-c

命令、ブロック、および関数の実行カウントの報告をオンにします。デフォルトでは、カバーされているコードまたはカバーされていないコードの情報だけが報告されます。(バイナリに計測機構を組み込むときとカバレージレポートを生成するときの両方で、このオプションを指定します。)

-e on | off

カバレージレポートのための実験ディレクトリを生成し、パフォーマンスアナライザ GUI で実験を表示します。デフォルトではオンになっています。

-H html_directory

カバレージデータを指定のディレクトリに HTML 形式で保存し、それを Web ブラウザで自動的に表示します。デフォルトでオフになっています。

-h または -?

ヘルプ。

-n

カバレージレポートを生成しますが、パフォーマンスアナライザや Web ブラウザなどのビューアを起動しません。

-t ascii_file

指定されたファイルで ASCII カバレージレポートを生成します。デフォルトでオフになっています。

-V

Uncover バージョンを出力して終了します。

-v

冗長。Uncover が実行する内容のログを出力します。

出力形式は 1 つだけ有効になるため、複数の出力オプションを指定する場合、Discover はコマンドの最後のオプションを使用します。

uncover a.out

このコマンドは、バイナリ a.out を計測し、入力 a.out を上書きして、現作業ディレクトリに a.out.uc カバレージデータディレクトリを作成し、a.out.uc ディレクトリに入力 a.out のコピーを保存します。a.out がすでに計測されている場合、警告メッセージが表示され、計測は実行されません。

uncover -d coverage a.out

このコマンドは、a.out.uc カバレージディレクトリをディレクトリ coverage に作成する点を除いて、最初の例が行うすべてのことを実行します。

uncover a.out.uc

このコマンドは、a.out.uc カバレージディレクトリのデータを使用して、作業ディレクトリにコードカバレージの実験 (a.out.er) を作成し、パフォーマンスアナライザ GUI を起動してその実験を表示します。

uncover -H a.out.html a.out.uc

このコマンドは、a.out.uc カバレージディレクトリのデータを使用して、ディレクトリ a.out.html に HTML コードカバレージレポートを作成し、Web ブラウザにレポートを表示します。

uncover -t a.out.txt a.out.uc

このコマンドは、a.out.uc カバレージディレクトリのデータを使用して、ファイル a.out.txt に ASCII コードカバレージレポートを作成します。

uncover -a a.out.uc

このコマンドは a.out.c カバレージディレクトリ内のデータを使用して、コードアナライザで使用するためのカバレージレポートを binary_name.analyze/coverage ディレクトリ内に作成します。