ナビゲーションリンクをスキップ | |
印刷ビューの終了 | |
Oracle Solaris Studio 12.3 コードアナライザユーザーズガイド Oracle Solaris Studio 12.3 Information Library (日本語) |
コードアナライザは 3 種類のデータを分析します。
コンパイル時に検出される静的コードエラー
メモリーエラー検出ツールである Discover で検出される動的メモリーアクセスエラーおよび警告
コードカバレージツールである Uncover で測定されるコードカバレージデータ
個々の分析へのアクセスを提供するほかに、コードアナライザは静的コード検査と動的メモリーアクセス検査を統合して、コードで見つかるエラーの信頼度を高めます。静的コード検査を動的メモリーアクセス分析およびコードカバレージ分析とともに使用することで、単独で機能するほかのエラー検出ツールでは見つけることのできない多くの重要なエラーをアプリケーション内に見つけることができます。
また、コードアナライザはコード内の中核となる問題、つまり、それらを修正すればほかの問題も解消される可能性の高い問題を特定します。通常、中核となる問題にはほかのいくつかの問題が関連しています。たとえば、それらの問題では割り当てポイントが共通であったり、問題が同じ関数の同じデータアドレスで発生したりするためです。
静的コード検査は、コード内の一般的なプログラミングエラーをコンパイル時に検出します。C および C++ コンパイラの -xanalyze=code オプションは、コンパイラの実績ある幅広い制御およびデータフロー分析フレームワークを活用して、アプリケーションのプログラミングおよびセキュリティー上の潜在的な欠陥を分析します。
静的エラーデータの収集については、「静的エラーデータの収集」を参照してください。
コードアナライザで分析される静的コードエラーのリストについては、「静的コードの問題」を参照してください。
多くの場合、コード内のメモリー関連のエラーは見つけることが困難です。プログラムを実行する前に Discover で計測機構を組み込むと、プログラムの実行中に Discover はメモリーアクセスエラーを動的に検出して報告します。たとえば、プログラムが配列を割り当て、それを初期化せずに、配列内のある場所から読み取ろうとする場合、プログラムは動作が不安定になることがあります。プログラムに Discover で計測機構を組み込んでから実行すると、Discover はこのエラーを検出します。
動的メモリーアクセスエラーデータの収集については、「動的メモリーアクセスデータの収集」を参照してください。
コードアナライザで分析される動的メモリーアクセスの問題のリストについては、「動的メモリーアクセスの問題」を参照してください。
コードカバレージは、ソフトウェアのテストの重要な部分です。Uncover はテストで実行される、または実行されないコードの領域に関する情報を提供し、テストスイートを向上させ、より多くのコードをテストできるようにします。コードアナライザは、Uncover によって収集されたデータを使用して、プログラム内のどの関数がカバーされていないか、また、該当する関数をカバーするテストを追加した場合にアプリケーションの合計カバレージが何パーセント増加するかを調べます。
コードカバレージデータの収集については、「コードカバレージデータの収集」を参照してください。