Oracle® Solaris Studio 12.4: コードアナライザチュートリアル

印刷ビューの終了

更新: 2014 年 10 月
 
 

codean コマンド行ツールの使用

コードアナライザのすべての機能を、codean コマンドでも同様に使用できます。このセクションは、codean コマンドを使用してコードで新しい静的コードの問題を検出する方法を、 SolarisStudioSampleApplications の同じ sample プログラムを使って説明する短いチュートリアルです。

  1. このチュートリアルの以前のセクションでは sample4.c をコンパイルしていませんでした。cat コマンドを使用してこのファイルをプレビューします。

    $ cat sample_4.c
    int another_new_umr()
    {
      int i;
      if (i)
        return 0;
      else
        return 1;
    }

    int i が初期化されていないことを確認します。

  2. ソースをコンパイルして静的レポートを生成します。

    Oracle Solaris の場合:

    $ cc -g -xprevise main.c previse_1.c previse_all.c sample1.c sample2.c sample3.c

    Oracle Linux の場合:

    $ cc -xannotate -g -xprevise main.c previse_1.c previse_all.c sample1.c sample2.c sample3.c
  3. codean –-save オプションを使用して静的レポートを a.out に保存します。

    $ codean --save -s a.out
  4. sample4.c を含めて sample アプリケーションを再コンパイルします。

    Oracle Solaris の場合:

    $ cc -g -xprevise *.c

    Oracle Linux の場合:

    $ cc -g -xannotate -xprevise *.c

    この新しい関数は main から呼び出されることはありませんが、新しい UMR エラーを発生させます。

  5. –-whatisnew オプションを使用して、新たに追加された静的な問題に関するレポートを取得します。

    $ codean --whatisnew -s a.out
    STATIC report of a.out showing new issues:
    Compare the latest results against a.out.analyze/history/2014.8.4.14.49.56...
    ERROR 1 (UMR): accessing uninitialized data: i at:
            another_new_umr()  <sample_4.c : 4>
                    1:      int another_new_umr()
                    2:      {
                    3:        int i;
                    4:=>      if (i)
                    5:          return 0;
    PREVISE SUMMARY for a.out: 1 new error(s), 0 new warning(s), 0 new leak(s) in total

次の図に、codean によって生成される静的コードの問題に関する HTML レポートを示します。

image:codean により生成された静的コードの問題に関する HTML レポート (新しい UMR エラーを表示)

codean の詳細については、Oracle Solaris Studio 12.4: コードアナライザユーザーズガイド のコードアナライザのコマンド行インタフェースおよび codean(1) のマニュアルページを参照してください。