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

印刷ビューの終了

更新: 2014 年 10 月
 
 

静的エラーデータの収集と表示

–xprevise コンパイラオプションを使用してバイナリを構築すると、コンパイラは静的エラーを自動的に抽出し、データをソースコードと同じディレクトリの binary-name.analyze ディレクトリの static サブディレクトリに書き込みます。コンパイラで検出される静的エラーの種類のリストについては、静的コードの問題を参照してください。

  1. sample ディレクトリで、次のように入力してアプリケーションを構築します。


    注 -  –xprevise オプションは、非推奨となった –xanalyze=code と同じです。
    • Oracle Solaris の場合:

      $ cc -xprevise main.c previse*.c sample1.c sample2.c sample3.c
    • Oracle Linux の場合:

      $ cc -xannotate -xprevise main.c previse*.c sample1.c sample2.c sample3.c

    注 -  チュートリアルのこの部分では sample4.c をコンパイルしません。

    静的エラーデータが sample/a.out.analyze/static ディレクトリに書き込まれます。

  2. コードアナライザ GUI を起動して結果を表示します。

    $ code-analyzer a.out &
  3. コードアナライザ GUI が開き、コンパイル時に見つかった静的コードの問題が「結果」タブに表示されます。「結果」タブの左上にあるテキストは、13 件の静的コードの問題が検出されたことを示しています。

    image:静的な問題が表示されたコードアナライザの「結果」タブ

    タブでは、各問題について、問題の種類、問題が見つかったソースファイルのパス名、およびそのファイルの該当するソース行を強調表示したコードスニペットが表示されます。

  4. 最初の問題、「メモリーの二重解放」エラーの詳細を表示するには、エラーアイコン image:エラーアイコン をクリックします。

    問題のスタックトレースが開き、エラーパスが表示されます。

    image:エラーパスが表示された「メモリーの二重解放」エラー

    スタックトレースを開くと、問題の右上隅に表示されているアイコンが image:未確認アイコン から、問題を確認したことを示す image:確認済みアイコン に変わることがわかります。


    注 -  確認済みの問題を非表示にするには、「結果」タブの上部にある「確認済み」ボタン image:レビュー済み課題を非表示ボタン をクリックします。ボタンを再度クリックすると、問題の非表示が解除されます。
  5. 同じエラーアイコンをクリックして、スタックトレースを閉じます。

  6. 「初期化されていないメモリーの読み取り」警告の 1 つの警告アイコン image:警告アイコン をクリックして、スタックトレースを開きます。

    この問題のエラーパスには、「メモリーの二重解放」問題のエラーパスよりもはるかに多くの関数呼び出しが含まれています。

  7. 最初の関数呼び出しをダブルクリックします。

    ソースファイルが開き、その呼び出しが強調表示されます。エラーパスは、ソースコードの下の詳細ウィンドウに表示されます。

    image:関数呼び出しが強調表示されたソースコードウィンドウとその下に表示されたエラーパス
  8. エラーパス内のその他の関数呼び出しをダブルクリックしていくと、エラーにつながったパスをコード内で追尾できます。

  9. 問題の説明の左側にある情報ボタン image:情報ボタン をクリックして、UMR エラータイプに関する詳細情報を確認します。

    コード例や考えられる原因などを含め、エラータイプの説明がオンラインヘルプブラウザに表示されます。

  10. 右上隅の X をクリックしてコードアナライザ GUI を閉じます。