JavaScript is required to for searching.
ナビゲーションリンクをスキップ
印刷ビューの終了
Oracle Solaris Studio 12.3 の概要     Oracle Solaris Studio 12.3 Information Library (日本語)
search filter icon
search icon

ドキュメントの情報

はじめに

Oracle Solaris Studio 12.3 の概要

Oracle Solaris Studio ソフトウェアの概要

Oracle Solaris Studio での開発者ワークフロー

Oracle Solaris Studio IDE

Oracle Solaris Studio コンパイラ

C コンパイラ

cc コマンドの構文

C のドキュメント

C++ コンパイラ

CC コマンドの構文

C++ のドキュメント

Fortran 95 コンパイラ

f95 コマンドの構文

Fortran のドキュメント

C/C++/Fortran ライブラリ

並列プログラミング用の OpenMP 3.1

大量の計算を行うプログラムのための Sun Performance Library

アプリケーションの構築用の dmake ユーティリティー

アプリケーションのデバッグ用のツール

コマンド行での dbx

IDE での dbx

dbxtool での dbx

アプリケーションの検証用のツール

メモリーエラーを検出するための Discover ツール

コードカバレージを測定するための Uncover ツール

統合エラーチェック用のコードアナライザツール

アプリケーションのパフォーマンスを調整するためのツール

パフォーマンスアナライザツール

コレクタでパフォーマンスデータを収集する

パフォーマンスアナライザでパフォーマンスデータを調べる

er_print ユーティリティーでパフォーマンスデータを調べる

スレッドアナライザでマルチスレッドアプリケーションのパフォーマンスを分析する

簡易パフォーマンス最適化ツール (SPOT)

DLight のプロファイリングツール

IDE のプロファイリングツール

詳細情報

アプリケーションの検証用のツール

Oracle Solaris Studio は、アプリケーションの安定性を検証するためのツールを備えています。次のツールは、動的分析、静的分析、およびコードカバレージ分析の組み合わせにより、メモリーリークやメモリーアクセス違反などのアプリケーションの脆弱性を検出します。

メモリーエラーを検出するための Discover ツール

メモリーエラー探索ツール (Discover) は、プログラム内のメモリーアクセスエラーを検出するための高度な開発ツールです。-g を指定してバイナリをコンパイルすると、Discover はエラーおよび警告をレポートする際にソースコードおよび行番号情報を表示できるようになります。

Discover は簡単に使用できます。-g を指定してバイナリをコンパイルしてから、そのバイナリに対して discover コマンドを実行して計測機構を組み込みます。その後、計測機構の組み込まれたバイナリを実行して、Discover レポートを生成します。Discover レポートは、HTML 形式、テキスト形式、またはその両方で要求できます。レポートにはメモリーエラー、警告、およびメモリーリークが表示され、各エラーまたは警告についてソースコードとスタックトレースを表示することもできます。

discover(1) のマニュアルページにある次の例は、メモリーアクセスエラーを検出するための Discover レポートを生成する目的で、実行可能ファイルを準備し、計測機構を組み込み、実行する方法を示しています。discover のコマンド行の -w オプションはレポートをテキストとして書き出すことを示し、- オプションは出力を画面に表示することを示します。

% cc -g -O2 test.c -o test.prep
% discover -w - -o test.disc test.prep
% ./test.disc
ERROR (UMR): accessing uninitialized data from address 0x5000c (4 bytes) at:
     foo() + 0xdc  <ui.c:6>
          3:    int *t;
          4:    foo() {
          5:     t = malloc(5*sizeof(int));
          6:=>   printf("%d0, t[1]);
          7:    }
          8:
          9:    main()
     main() + 0x1c
     _start() + 0x108
    block at 0x50008 (20 bytes long) was allocated at:
     malloc() + 0x260
     foo() + 0x24  <ui.c:5>
          2:
          3:    int *t;
          4:    foo() {
          5:=>   t = malloc(5*sizeof(int));
          6:     printf("%d0, t[1]);
          7:    }
          8:
     main() + 0x1c
     _start() + 0x108

     ***************** Discover Memory Report *****************

1 block at 1 location left allocated on heap with a total size of 20 bytes

    1 block with total size of 20 bytes
     malloc() + 0x260
     foo() + 0x24  <ui.c:5>
          2:
          3:    int *t;
          4:    foo() {
          5:=>   t = malloc(5*sizeof(int));
          6:     printf("%d0, t[1]);
          7:    }
          8:
     main() + 0x1c
     _start() + 0x108

詳細は、discover(1) のマニュアルページと『Oracle Solaris Studio 12.3 Discover および Uncover ユーザーズガイド』を参照してください。

コードカバレージを測定するための Uncover ツール

Uncover はコードカバレージを測定するためのコマンド行ツールです。このツールは、アプリケーションの実行時に実行されるアプリケーションコードの領域と、実行されず、テストによってカバーされない領域を示します。Uncover は、テスト時により多くのコードがカバーされるように、テストスイートにどの関数を追加する必要があるかの判断に役立つ統計およびメトリックを含むレポートを生成します。

Uncover は、Oracle Solaris Studio コンパイラで構築された任意のバイナリで機能しますが、バイナリが最適化なしで構築されている場合に最適に機能します。-g を指定してバイナリをコンパイルすると、Uncover はコードカバレージについてレポートする際にソースコードおよび行番号情報を表示できるようになります。

バイナリをコンパイルしたあと、バイナリに対して uncover コマンドを実行します。Uncover は、計測コードが追加された新しいバイナリを作成し、プログラムのコードカバレージデータが格納される binary.uc という名前のディレクトリも作成します。計測機構の組み込まれたバイナリを実行するたびに、コードカバレージデータが収集され、binary.uc ディレクトリに格納されます。

パフォーマンスアナライザで実験データを表示することも、Uncover レポートを HTML として生成し、Web ブラウザで表示することもできます。

次の例は、コードカバレージを調べるための Uncover レポートを生成する目的で、実行可能ファイルを準備し、計測機構を組み込み、実行する方法を示しています。最適化されたバイナリは test であり、計測機構が組み込まれた、やはり test という名前のバイナリに置換されます。

% cc -g -O2 test.c -o test
% uncover test
% test

実験ディレクトリは test.uc であり、計測機構の組み込まれた test の実行時に生成されるデータが含まれます。test.uc ディレクトリには、計測機構のない test バイナリのコピーも含まれます。

パフォーマンスアナライザで実験を表示するには:

% uncover test.uc

ブラウザの HTML ページで実験を表示するには:

% uncover -H test.html test.uc

詳細は、uncover(1) のマニュアルページと『Oracle Solaris Studio 12.3 Discover および Uncover ユーザーズガイド』を参照してください。

統合エラーチェック用のコードアナライザツール

Oracle Solaris Studio コードアナライザは、コードの統合分析を実行できるグラフィカルツールです。コードアナライザでは、ほかのツールで収集した 3 種類の情報を使用します。

これらのツールのいずれかまたは任意の組み合わせを使用して準備したバイナリに対して、コードアナライザを使用できます。ただし、3 種類のデータを統合して表示すると、コードを最も明確に調べることができ、よりセキュリティーと堅牢性の高いアプリケーションを作成できます。

次の例は、事前に Discover および Uncover で準備した a.out という名前のバイナリに対してコードアナライザを実行する方法を示しています。

% code-analyzer a.out

次の図では、a.out バイナリで検出された問題がコードアナライザに表示されています。

image:コードアナライザのスクリーンショット