Klocwork 2023.3 の新機能
Klocwork 2023.3 の主な機能を次に示します。アップグレードする場合は、Klocwork の使用方法に影響を与える項目を制限事項で参照してください。
ビルドタグによるビルドの識別
システム (通常) ビルドと CI ビルドの両方にビルドタグが導入されました。ビルドタグは、情報の簡潔な要素であり、次のことが可能になります。
-
ブランチ名、コミット ID、プラットフォーム、アーキテクチャなどの便利なタグを割り当てることにより、特定のビルドを識別しやすくする
-
スクリプトで使用できる任意のメタデータをビルドに追加する
-
コミットまたはブランチをビルドに関連付ける (さらに後で、クエリしたり、使用したりして、ファイルマッチングオーバーライドファイルが自動的に生成されるようにすることができる)
ビルドタグを追加、編集、表示する方法は多数あります。 こうした方法には、Web ポータル、Web API、kwadmin または validate admin の load & list-builds コマンド、および kwciagent の run コマンドと sync コマンドを介してアクセスできます。 詳細については、ビルドタグの使用を参照してください。
オーバーライドファイルによるファイルマッチングの手動指定
ファイルマッチングを手動で指定するために、ファイルマッチングオーバーライドファイルオプションが追加されています。
オーバーライドファイルとは、ファイルに追加、削除、または名前変更のマークを付けるために使用できるシンプルなテキストファイルです。オーバーライドファイルを使用して、複雑なシナリオをより適切に制御し、ファイルの不一致を減らすことができます。
オーバーライドファイルを適用するには、kwadmin load または validate admin load で file-overrides オプションを使用します。詳細と例については、ファイルマッチングオーバーライドファイルを使用するを参照してください。
ビルドのロードに関する推奨事項
Klocwork では、ビルドをロードするときに自動マッチングアルゴリズムを使用して、以前のビルドと比較してどのファイルが変更または移動されたか判断します。これは、ビルド間で指摘をマッチングするための基盤となる機能であり、ビルドの比較結果の精度に大きな影響を及ぼします。
Klocwork ビルドをロードするときに最適な一致結果を得るには、次のことをお勧めします。
-
常にパス置換を使用する
-
ファイルの完全一致を有効にする
-
ファイルマッチングオーバーライドファイルを使用する
-
ビルドタグを使用する
-
論理ストリーム構造を作成する
詳細については、ビルドのロードで推奨される手法を参照してください。
プラグインおよび拡張機能
Klocwork 2023.3 以降は、Visual Studio で実行される解析にデフォルトで kwcheck 外部解析エンジンが使用されるようになりました。kwcheck.exe をデフォルトのエンジンとして使用すると、インデックス作成を省略して解析をより早く開始できるようになるだけでなく、デスクトップとサーバーの両方で同じ基礎解析フレームワークを使用できるようになるため、欠陥の解決の一貫性と効率が向上します。
外部エンジンを使用するには、kwcheck がインストールされていることを確認してください。kwcheck を構成するには、[拡張機能] > [Klocwork] > [オプション] に移動します。
ストリーム
プロジェクトのストリームを処理、編集、および削除するときの速度とパフォーマンスがさらに強化されました。
C/C++
このリリースでは、
-
定数インデックスを使用する場合の配列値の追跡機能を追加しました
-
安定性と精度を向上させるために、C/C++ 解析エンジンを改善しました
-
C++14 および C++17 解析のサポートを強化しました
-
C/C++ の CWE 2023 上位 25 に関する新しい分類基準を追加しました
-
MISRA C:2023 に関する新しい分類基準を追加しました
Java
このリリースでは、
- Java 14 解析の完全なサポートを追加しました
コーディング基準
このリリースには、次のコーディング標準に関する新しい標準と拡張標準カバレッジが含まれています。
- CWE
- C/C++ の CWE 2023 上位 25
- C/C++ の DISA-STIG
- HKMC セキュアコーディング基準
- MISRA C:2023
チェッカーの改善
リリースを重ねるたびに、当社は指摘検出を改善して最先端の機能をお客様に提供しています。結果として、精度とカバレッジが向上すると解析結果が変わると予想されます。
新しいチェッカー
チェッカー | 説明 |
---|---|
PRECISION.LOSS.INIT | この C/C++ チェッカーは、初期化中に比較的小さいデータ型への暗黙的なキャストによって精度 (データ) が損なわれる可能性がある状況を検出します。 |
変更されたチェッカー
チェッカー | 説明 |
---|---|
INFINITE_LOOP.GLOBAL | 新たな欠陥が検出されました |
INFINITE_LOOP.LOCAL | 新たな欠陥が検出されました |
LOCRET.ARG | 誤検知を削減しました |
MISRA.EXPANSION.UNSAFE | 新たな欠陥が検出されました |
MLK.MUST | 新たな欠陥が検出されました |
NPD.FUNC.MIGHT | 誤検知を削減しました |
RH.LEAK | 誤検知を削減しました |
RLK.OUT |
新たな欠陥が検出されました |
SV.SSRF.URI |
新たな欠陥が検出されました |
SV.USAGERULES.PROCESS_ VARIANTS |
サンプルコードを記載してドキュメントが更新されました |
UNINIT.STACK.MUST | 誤検知を削減しました |
UNREACH.GEN | 誤検知を削減しました |
VA_UNUSED.INIT | 誤検知を削減しました |
有効または無効なチェッカー
このリリースのチェッカー構成ファイルのデフォルトの enabled
フィールドから、以下のチェッカーが削除されました。
-
PY3.E0001
-
PY3.E0013
-
PY3.E0014
-
PY3.E0015
-
PY3.F0001
-
PY3.F0002
-
PY3.F0010
-
PY3.F0011
分類基準の改善
インストールの一部として、チェッカーを MISRA、CWE、OWASP、DISA STIG などの規格にマッピングするカスタム分類基準ファイルがいくつか提供されています。
分類基準 | 新規または更新 |
---|---|
cwe_2023_top_25_cxx.tconf および cwe_2023_top_25_cxx_ja.tconf |
Klocwork チェッカーを 2023 CWE 上位 25 の最も危険なソフトウェアの弱点にマッピングする新しい分類基準を追加しました。 |
cwe_all_cxx.tconf と cwe_all_cxx_ja.tconf |
cwe_all_cxx.tconf 分類基準と cwe_all_cxx_ja.tconf 分類基準の構成を大幅に変更しました。 |
disa_stig_v4_cxx.tconf と disa_stig_v4_cxx_ja.tconf |
チェッカーマッピングを以下の規則に追加または更新しました。
|
disa_stig_v5_cxx.tconf と disa_stig_v5_cxx_ja.tconf |
チェッカーマッピングを以下の規則に追加または更新しました。
|
hkmc_c.tconf と hkmc_c_ja.tconf |
チェッカーマッピングを以下の規則に追加または更新しました。
|
misra_c_2023_c11_all_checkers.tconf と misra_c_2023_c11_certified.tconf と misra_c_2023_c90_all_checkers.tconf と misra_c_2023_c90_certified.tconf と misra_c_2023_c99_all_checkers.tconf と misra_c_2023_c99_certified.tconf と |
Klocwork チェッカーを MISRA C:2023 基準にマッピングする新しい分類基準を追加しました。 |
サポートされているコンパイラへの改善
以下のコンパイラのサポートを追加または改善しました。
-
Clang
-
GNU
-
TI Arm Clang
-
TI tms320c28x
-
TI msp430 C/C++
-
TI tms320c6x、TI tms320c55x、および TI C7000 Optimizing C/C++
サポートされる C/C++ コンパイラの全リストについては、「ビルド統合でサポートされる C/C++ コンパイラ」を参照してください。
ライセンス
Klocwork は、Reprise License Manager (RLM) をサポートします。
2022 ライセンスは、Klocwork 2023.2 との互換性がありません。最新バージョンの製品を使用するには、新しいライセンスが必要です。ライセンスの入手に関しては、license@perforce.com 宛てにお問い合わせください。
このリリースでは、Klocwork による RLM ドングルの使用に関する情報が追加されました。詳細については、サポートされる RLM のバージョンおよび RLM ドングルをサポートするオペレーティングシステムを参照してください。
Klocwork 2023.1 の時点での FLEXlm/FlexNet Publisher の販売終了通知
Klocwork 2023.1 の時点で、Klocwork は、FLEXlm/FlexNet Publisher から Reprise License Manager (RLM) に移行することで、ライセンス管理ツールを変更しています。FLEXlm/FlexNet Publisher はサポートされなくなります。
Reprise 用の新しい製品ライセンスファイルが生成される予定であり、Klocwork 旧バージョン用の FLEXlm ライセンスファイルは、必要な場合に提供されます。
移行の詳細については、FlexLM から Reprise への移行ライセンスを参照してください。
システム要件の変更
このリリースでは、次のサポートが追加されました。
-
Windows 11 (バージョン 22H2)
-
AlmaLinux バージョン 9.0 ~ 9.2
-
Amazon Linux 2 (2.0.20230808.0 Update)
-
Oracle Linux 8.8
-
Rocky Linux バージョン 9.0 ~ 9.2
-
Eclipse 4.28 (2023-06)
-
Android Studio Giraffe 2022.3.1
-
CLion 2023.1 (2023.1.5 まで)
-
Visual Studio 2017 バージョン 15.9.56
-
Visual Studio 2019 バージョン 16.11.29
-
Visual Studio 2022 バージョン 17.7.1
-
Visual Studio Code 1.81.1 (サポートされる最小バージョンは 1.72.2)
-
Microsoft Edge 115.x
-
Firefox 116.x
-
Chrome 116.x
-
Jenkins 2.419
このリリースでは、次のサポートを終了しました。
-
Visual Studio Code 1.69.1 ~ 1.72.1
-
Microsoft Edge 103.x ~ 105.x
-
Firefox 103.x ~ 105.x
-
Chrome 103.x ~ 105.x
サポート対象のバージョンの完全なリストについては、「システム要件」を参照してください。
指摘のグループ化の廃止
指摘のグループ化は、Klocwork 2023.3 で廃止されました。以前のバージョンからアップグレードする場合は、移行を実行する前に指摘のグループ化をオフにすることをお勧めします。
Klocwork 2021 のメンテナンス終了
全バージョンの Klocwork 2021 のメンテナンスが、2023 年 3 月 31 日に終了しました。メンテナンス終了 (EOM) 日と販売終了 (EOS) 日も 2023 年 3 月 31 日でした。Klocwork リリースのサポート可否についての詳細は、「Klocwork 製品のライフサイクル」を参照してください。
Klocwork 2023.1 での Path API バージョンのアップグレード
パス解析インスタンス内でのマルチスレッド実行に対応するため、Path API のバージョンをアップグレードしました。アップグレードされた API には、旧バージョンとの下位互換性はありません。Path API を使用するすべてのカスタムチェッカーは、2023 Klocwork Path API のヘッダーとライブラリを使用することで、更新および再コンパイルする必要があります。詳細については、Path API ドキュメンテーションを参照してください。
Klocwork 2023.1 の時点での macOS の販売終了通知
Klocwork 2023.1 以降では、以下のオペレーティングシステムとインストーラーはサポートされなくなります。
- macOS