Oracle® Solaris Studio 12.4: コードアナライザユーザーズガイド

印刷ビューの終了

更新: 2014 年 10 月
 
 

静的エラーデータの収集

C または C++ プログラムの静的エラーデータは、Oracle Solaris Studio 12.3 または 12.4 の C または C++ コンパイラを使用して –xprevise=yes オプションでプログラムをコンパイルします。以前は –xanalyze=code オプションを使用していましたが、このオプションは EOL であるため、代わりに –xprevise=yes オプションを使用することをお勧めします。 –xprevise=yes オプションは、以前のリリースの Oracle Solaris Studio ではコンパイラで使用できません。このオプションを使用すると、コンパイラは静的エラーを自動的に抽出し、データを binary-name.analyze ディレクトリの static サブディレクトリに書き込みます。

プログラムを –xprevise=yes オプションでコンパイルしたあと、別の手順でリンクする場合は、リンク手順でも –xanalyze=code オプションを指定する必要があります。

Linux では、静的エラーデータを収集するには –xannotate オプションと –xprevise=yes を指定する必要があります。例:

% cc -xprevise=yes -xannotate -g t.c

コンパイラはコード内の静的エラーをすべて検出できるわけではないことに注意してください

  • 実行時にのみ使用可能になるデータに依存するエラーもあります。たとえば、次のコードの場合、ファイルから読み取られる ix の値が [0,9] の範囲外にあることを検出できないため、コンパイラは ABW (配列範囲外への書き込み) エラーを検出しません。

    void f(int fd, int array[10])
    {
      int ix;
      read(fd, &ix, sizeof(ix));
      array[ix] = 0;
    }
  • 一部のエラーはあいまいであり、実際のエラーではないことがあります。コンパイラはこのようなエラーを報告しません。

  • 一部の複雑なエラーは、このリリースのコンパイラでは検出されません。

静的エラーデータを収集したあと、コードアナライザ GUI またはコマンド行ツール (codean) を起動してデータの分析と表示を行なったり、動的メモリーアクセスまたはコードカバレージのデータを収集できるようにするためにプログラムを再度コンパイルできます。