組み込みタイプのサイズの指定
Klocwork 解析を実行すると、サポートされているメトリックがすべて計算され、tables ディレクトリにある metric.dat ファイルに保存されます。ただし、レポートには、メトリックしきい値構成ファイルに規則があるメトリックしきい値の違反だけが表示されます。
Klocwork にさらに多くのメトリックについて報告させるには、追加のメトリックしきい値規則を書き、それらをメトリックしきい値構成ファイルに追加する必要があります。
しかし、追加情報を提供してメトリックが正確に計算されるようにしないと、次のメトリックに関係する新規規則を書けない場合があります。必要な情報は、Klocwork がソースコードから直接検出できる項目の範囲を超えています。
コード内の特定エンティティのバイト数を計算する次のメトリックは、追加の Klocwork オプションを使用しないと正確に計算されない場合があります。
- BYTESGLDATADECL
- BYTESDATADECL
- BYTESLOCDECL
- BYTESPARMS
- BYTESPAROTHER
これらのメトリックの計算は、ソフトウェアシステムの組み込み型のサイズに関する保存済み情報 (バイト数単位) に依存します。組み込み型のサイズがデフォルトサイズと一致した場合、Klocwork は、実行のたびにこれらのメトリックを正確に計算します。
Klocwork では、組み込み型に次のデフォルトサイズが使用されます。
Windows
char;1 signed char;1 unsigned char;1 short int;2 signed short int;2 unsigned short int;2 int;4 signed int;4 unsigned int;4 long int;4 signed long int;4 unsigned long int;4 __int8;1 __int16;2 __int32;4 __int64;8 __wchar_t;2 float;4 double;8 long double;8 <pointer>;4 <unknown type>;4
Unix:
char;1 signed char;1 unsigned char;1 short int;2 signed short int;2 unsigned short int;2 int;4 signed int;4 unsigned int;4 long int;4 signed long int;4 unsigned long int;4 long long int;8 signed long long int;8 unsigned long long int;8 float;4 double;8 long double;12 <pointer>;4 <unknown type>;4
組み込み型のサイズがデフォルトサイズと一致しない場合は、型のサイズに関するファイルを作成し、Klocwork 解析時にこの構成ファイルを使用する必要があります。
- 任意の名前と場所を持つテキストファイルを作成します。ファイル拡張子は
.szt
である必要があります。 - このファイルの各行で、次の構文で型と型サイズを指定します。
<type_name>;<type_size>
フィールド
- <type_name> は組み込み型の名前です。
- <type_size> は型のサイズ (バイト単位) です。
- 次の 2 つのあらかじめ定義された型名をファイルに記載します。
0_TYPE_POINTER
は、ポインターまたはリファレンスのサイズを指定するために使用されます。0_TYPE_UNKNOWN
は、不明な組み込み型のサイズを指定するために使用されます。 - 新しい構成ファイルを統合ビルド解析に適用するには、プロジェクトまたは projects_root にインポートします。