ナビゲーションリンクをスキップ | |
印刷ビューの終了 | |
Oracle Solaris Studio 12.3 Discover および Uncover ユーザーズガイド Oracle Solaris Studio 12.3 Information Library (日本語) |
Uncover を使用してカバレージ情報を生成するには、3 ステップのプロセスがあります。
バイナリの計測
計測済みバイナリの実行
カバレージレポートの生成と表示
入力バイナリは、実行可能ファイルまたは共有ライブラリとすることができます。分析したいバイナリの計測は個別に行う必要があります。
uncover コマンドを使用してバイナリを計測します。たとえば、次のコマンドは、バイナリ a.out を計測し、入力 a.out を計測済み a.out で上書きします。また、このコマンドは、接尾辞 .uc を持つディレクトリ (この場合は a.out.uc) を作成します。この中に、カバレージデータが収集されます。入力バイナリのコピーはこのディレクトリに保存されます。
uncover a.out
バイナリに計測機構を組み込むとき、次のオプションを使用できます。
命令、ブロック、および関数の実行カウントの報告をオンにします。デフォルトでは、カバーされているコードまたはカバーされていないコードの情報だけが報告されます。(バイナリに計測機構を組み込むときとカバレージレポートを生成するときの両方で、このオプションを指定します。)
directory 内にカバレージデータディレクトリを作成するよう Uncover に指示します。このオプションは、複数のバイナリ用のカバレージデータを収集する場合に役立ち、カバレージデータディレクトリのすべてが同じディレクトリ内に作成されるようにします。また、異なる場所から同じ計測済みバイナリの異なるインスタンスを実行する場合、このオプションを使用すると、これらの実行のすべてから取得されるカバレージデータが同じカバレージデータディレクトリに確実に蓄積されるようになります。
-d オプションを使用しない場合、カバレージデータディレクトリは現在の実行ディレクトリに作成されます。
スレッドセーフなプロファイリングをオンまたはオフにします。デフォルトはオンです。このオプションは -c 実行時オプションと組み合わせて使用します。スレッドを使用するバイナリに -m off で計測機構を組み込むと、バイナリは実行時に失敗し、バイナリに -m on で計測機構を組み込み直すよう指示するメッセージが表示されます。
指定されたファイルに計測機構付きバイナリファイルを書き込みます。デフォルトでは、入力バイナリファイルが計測機構付きファイルで上書きされます。
すでに計測されている入力バイナリ上で 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 形式で生成して端末ウィンドウで表示したりすることができます。または、データをディレクトリに書き込み、コードアナライザで分析と表示を行うことができます。
コードアナライザで使用するためにエラーデータを binary_name.analyze/coverage ディレクトリに書き込みます。
命令、ブロック、および関数の実行カウントの報告をオンにします。デフォルトでは、カバーされているコードまたはカバーされていないコードの情報だけが報告されます。(バイナリに計測機構を組み込むときとカバレージレポートを生成するときの両方で、このオプションを指定します。)
カバレージレポートのための実験ディレクトリを生成し、パフォーマンスアナライザ GUI で実験を表示します。デフォルトではオンになっています。
カバレージデータを指定のディレクトリに HTML 形式で保存し、それを Web ブラウザで自動的に表示します。デフォルトでオフになっています。
ヘルプ。
カバレージレポートを生成しますが、パフォーマンスアナライザや Web ブラウザなどのビューアを起動しません。
指定されたファイルで ASCII カバレージレポートを生成します。デフォルトでオフになっています。
Uncover バージョンを出力して終了します。
冗長。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 ディレクトリ内に作成します。