Klocwork 2025.2 の新機能
2025 年 6 月発行
Klocwork 2025.2 の主な特長は、以下のとおりです。Klocwork をアップグレードする場合は、アップグレードと使用方法に影響を与える可能性がある項目を制限事項で参照してください。
Klocwork と Validate の機能強化
このリリースには、次の機能強化が含まれています。
指摘の表示と管理の柔軟性の向上
Validate の [指摘] タブで、リストビューまたはテーブルビューを使用して、指摘の並べ替え、選択、検索、更新を行うことができるようになり、一括アクションとスマートランキングが完全にサポートされるようになりました。
規則参照クエリのサポート拡張
Klocwork ツールセット全体で、以下のように、規則参照によるクエリのサポートが強化されました。
- Validate で、分類基準と参照によって指摘リストを検索できるようになりました。分類基準クエリと参照クエリは Web API でもサポートされています。
- VS Code 用の Perforce Static Analysis 拡張機能に規則参照列が追加され、規則名およびカテゴリに基づいて並べ替えを行えるようになりました。
- 以前は、Validate の [指摘] タブと [指摘の詳細] パネルには、指摘ごとに 1 つの分類基準または参照値しか表示されませんでした。現在では、指摘に適用できるすべての分類基準と参照値を確認することが可能になりました。また、参照値の表示の一貫性も改善されました。
モダンエンジンをデフォルトで使用して、より広範な C++ 解析を実現
解析エンジンモードが指定されていない場合に、クラシックモードではなくモダンモードがデフォルトで使用されるようになりました。モダンモードでは、言語サポートに関する最大限の処理能力と最新の C++ コードを解析するための高度な機能が提供されます。
モダンモードを使用すると、発見される新しい欠陥の数が大幅に増加する可能性があります。リリース 2025.2 にアップグレードする場合は、アップグレード直前の解析に使用したのと同じコードバージョンに対する解析を実行することをお勧めします。そうすることで、アップグレードによって発生した変更が分離されるようになるので、それらの変更を指摘のバックログとの関連でどのように処理するか (たとえば、必要に応じて保留またはフィルタリングするなど) を決定することが可能になります。
モードの切り替え方法を比較し、確認するには、「C/C++ 解析エンジンモードの指定」を参照してください。
ビルド保持ポリシーのワークフローの改善
Klocwork の自動ビルド削除機能を使用すると、指定された制限値に達した場合に古いビルドが削除されるようになるので、ストレージの管理に役立ちます。Validate ポータル、Web API、および kwadmin コマンドと validate admin コマンド全体にわたってプロジェクトレベルまたはストリームレベルでビルドの保持をよりきめ細かく構成できるようになりました。
詳細については、「ビルド管理」を参照してください。
kwcheck と kwciagent で失敗時に終了コードが表示されるようになりました
解析フローに関する指摘を検出し、不足しているパーミッションを修正するのに役立つように、kwcheck コマンドおよび kwciagent コマンドで指摘が発生した場合は、ゼロ以外の終了コードが出力されて失敗するようになりました。
影響を受けるコマンドは、以下のとおりです。
clean
disable
discard
enable
export
import
set-status
CI ビルドのデータベースの改善
ロード時のストレージフットプリントとデータベース変更量を削減するため、CI ビルドのデータベース構造が更新されました。これにより、特に CI アクティビティが頻繁に発生するプロジェクトでは、パフォーマンスとスケーラビリティが向上します。
Tip: リリース 2025.2 に移行した場合、未使用のエンティティのクリーンアップが実行されて、新しい構造が最適化されます。ディスク容量があまり重要ではないプロジェクトについては、クリーンアップを一時的にスキップしてオンボーディングを迅速化するため、環境変数 SKIP_MIGRATE_ENTITIES_CLEANUP=true
を設定することができます。プロジェクトを一括で移行するには、除外リストを使用して、クリーンアップが必要かどうかに応じてプロジェクトごとに SKIP_MIGRATE_ENTITIES_CLEANUP
を選択的に設定または設定解除してください。
新しいデザインのコンプライアンスレポートで、より明確なインサイトにアクセス
欠陥情報の抑制、レポートのフォーマットの更新、レポートを削除するための新しい方法など、強化されたコンプライアンスレポート機能を活用します。
プロジェクトのコンプライアンスに関する、より明確なインサイトの獲得
以前は、コンプライアンスレポートはプロジェクトの現在の構成に基づいて生成されていました。コンプライアンスをより明確に示すために、レポートが生成されたビルド時に有効になっていたチェッカーと規則構成を使用してレポートが生成されるようになりました。
[ファイル概要] によるファイルごとの違反と逸脱の評価
わかりやすくするため、[違反の詳細] セクションの名前が [ファイル概要] に変更されました。このセクションでは、各ファイルが規則に準拠しているかどうかということが、違反や逸脱と共に表示されます。
更新された [規則概要] で、改善された背景情報を確認
[規則概要] で、チェッカーコードと説明だけを確認するのではなく、規則の名前と説明を確認できるようになりました。これは、技術的なコードを解釈しなくても指摘を評価するために役立ちます。
規則の名前と説明を分けて、レポート表示を明確化
規則の名前と説明が別々の列に表示されるようになり、各規則の詳細が読みやすく、理解しやすくなりました。
[有効] 列にはチェッカーではなく規則のステータスを反映
以前は、[有効] 列にはチェッカーが enabled
と disabled
のどちらであるかが表示されていました。コンプライアンスをより効率的に確認できるようにするため、[有効] 列には規則が enabled
(規則にマッピングされたすべてのチェッカーが有効になっている場合)、disabled
(規則にマッピングされたすべてのチェッカーが無効になっている場合)、partial
(規則にマッピングされたチェッカーのいくつかが有効になっている場合) のいずれであるかが表示されるようになりました。
同様に、Number of rules disabled
(無効にした規則の数) メトリックは、無効になっているチェッカーの数ではなく、無効になっている規則の数を指定するようになりました。
抑制の詳細を含むコンプライアンスレポートで、抑制された欠陥を特定
解析中に除外された指摘を従来よりも簡単に目視確認できるように、各コンプライアンスレポートで、ビルドの抑制設定 (.sconf) ファイルによって適用されたグローバルおよびファイルベースの抑制の詳細が表示されます。
詳細については、「マクロまたはファイルを使用した指摘の除去」を参照してください。
コンプライアンスレポートの削除方法と削除する場所の選択
以前は、コンプライアンスレポートは projects_root ディレクトリの compliance_reports フォルダーからしか削除できませんでした。現在では、Validate ポータルまたは Web API を使用してレポートを削除できるようになりました。
詳細については、「コンプライアンスレポートの作成」を参照してください。
C および C++ の機能向上
このリリースでは、以下のことが可能になりました。
- モダンエンジンモードの高度な解析機能へのアクセスを確保しながら、特定のソースエンコーディングを設定する
- 特殊な事例でのインクルードディレクトリの処理を改善すると共に、kwbazel を実行する
プラグインと拡張機能
Eclipse 更新サイトが site.xml ベースから p2 ベースにアップグレードされ、以下のメリットが提供されるようになりました。
- 従来よりも高速で信頼性に優れたインストール
- 依存関係の自動解決
- アンインストールとロールバックのサポート
- 新しい Eclipse バージョンとの互換性の向上
- 全体的なプラグイン管理の強化
インストール手順については、「Eclipse 更新サイトからの Klocwork プラグインのインストール」を参照してください。
コーディング標準の対象範囲の拡大
このリリースには MISRA C:2025 の新しい分類基準が含まれています。
チェッカーの改善
新しいチェッカー
このリリースでは新しいチェッカーは追加されませんでした。
変更されたチェッカー
チェッカー | 説明 |
---|---|
CONC.DBL_UNLOCK | 誤検知の検出が少なくなる |
CXX.USE.MAGIC_NUMBER | 誤検知の検出が少なくなる |
MISRA.FUNC.MODIFIEDPAR.2012 | チェッカーのサポートを改善 |
MISRA.INCOMPLETE.STRUCT | 誤検知の検出が少なくなる |
UNINIT.STACK.ARRAY.MIGHT | チェッカーのサポートを改善 |
UNINIT.STACK.ARRAY.MUST | チェッカーのサポートを改善 |
有効または無効なチェッカー
このリリースでチェッカー構成ファイルのデフォルトの enabled
フィールドに追加されたチェッカーはありません。
分類基準の改善
インストールの一部として、Klocwork チェッカーを MISRA、CWE、OWASP、DISA STIG などのコーディング標準にマップするカスタム分類基準ファイルがいくつか提供されています。
分類基準 | 改善 |
---|---|
autosar_cpp_18_10.tconf および autosar_cpp_18_10_ja.tconf autosar_cpp_18_10_strict.tconf および autosar_cpp_18_10_strict_ja.tconf |
AUTOSAR C++14 バージョン 18-10 分類基準が大幅に再編成されました。 |
cert_cpp_rules.tconf および cert_cpp_rules_ja.tconf |
以下の規則でチェッカーマッピングを追加または修正しました。
|
cwe_2021_top_25_cs.tconf および cwe_2021_top_25_cs_ja.tconf cwe_2021_top_25_cxx.tconf および cwe_2021_top_25_cxx_ja.tconf cwe_2021_top_25_java.tconf および cwe_2021_top_25_java_ja.tconf |
CWE 2021 最も危険なソフトウェアエラー上位 25 件にマッピングされる Klocwork C/C++、C#、および Java チェッカーのリストがドキュメントから削除されました。バージョン 2023 および 2024 は引き続きサポートされます。 |
disa_stig_v4_cxx.tconf および disa_stig_v4_cxx_ja.tconf disa_stig_v4_java.tconf および disa_stig_v4_java_ja.tconf |
IASE (バージョン 4) で提供されている Security Technical Implementation Guides (STIGs) にマッピングされる Klocwork C/C++ および Java チェッカーのリストがドキュメントから削除されました。バージョン 5 および 6 は引き続きサポートされます。 |
misra_c_2012_with_amd2_c11.tconf および misra_c_2012_with_amd2_c11_ja.tconf misra_c_2012_with_amd2_c90.tconf および misra_c_2012_with_amd2_c90_ja.tconf misra_c_2012_with_amd2_c99.tconf および misra_c_2012_with_amd2_c99_ja.tconf misra_c_2023_c11.tconf および misra_c_2023_c11_ja.tconf misra_c_2023_c90.tconf および misra_c_2023_c90_ja.tconf misra_c_2023_c99.tconf および misra_c_2023_c99_ja.tconf |
特定の MISRA 分類基準について表示されるチェッカーカテゴリ (推奨、必要、必須) が修正されました。 |
misra_c_2025_c11.tconf および misra_c_2025_c11_ja.tconf misra_c_2025_c90.tconf および misra_c_2025_c90_ja.tconf misra_c_2025_c99.tconf および misra_c_2025_c99_ja.tconf |
Klocwork チェッカーを MISRA C++:2025 標準にマッピングする新しい分類基準が追加されました。 |
owasp_2013_10_java.tconf および owasp_2013_10_java_ja.tconf |
OWASP 2013 トップ 10 セキュリティリスクにマッピングされる Klocwork Java チェッカーのリストがドキュメントから削除されました。バージョン 2017 および 2021 は引き続きサポートされます。 |
サポートされているコンパイラへの改善
次のコンパイラのサポートを追加または改善しました。
-
armcc
-
armcpp (ARM)
-
cl430 (TI msp430 C/C++)
-
Clang GenFw ユーティリティ
-
GNU ar リンカー
-
GNU iccarm (IAR Systems C コンパイラ)
-
llvm-ar リンカー
-
QNX (qcc、q++)
-
rsync ユーティリティ
サポートされる C/C++ コンパイラの全リストについては、「ビルド統合でサポートされる C/C++ コンパイラ」を参照してください。
ライセンス
Klocwork は、Reprise License Manager (RLM) をサポートします。
2024 ライセンスは、Klocwork 2025.1 以降との互換性がありません。製品の最新バージョンを使用するには、Perforce (license@perforce.com) に連絡して新しいライセンスを取得してください。
詳細については、サポートされる RLM のバージョンおよび RLM ドングルをサポートするオペレーティングシステムを参照してください。
システム要件の変更
以下の環境のサポートが追加されました。
-
Amazon Linux 2 (2.0.20250512.0 Update)
-
Android Studio Meerkat (2024.3.1 Patch 2 まで)
-
CLion 2024.2 (2024.2.5 まで)、2024.3 (2024.3.5 まで)、2025.1 (2025.1.1 まで)
-
Debian 12.11
-
Eclipse 4.35 (2025-03)
-
Fedora 41 ~ 42
-
Google Chrome 126.x ~ 136.x
-
Gradle および gradlew 3.x ~ 8.14.1
-
IntelliJ IDEA 2024.2 (2024.2.6 まで) および 2024.3 (2024.3.5 まで)
-
Microsoft Edge 126.x ~ 136.x
-
Mozilla Firefox 127.x ~ 138.x
-
Visual Studio 2017 (15.9.73 まで)、2019 (16.11.47 まで)、および 2022 (17.14.2 まで)
-
VS Code 1.91.1 ~ 1.100.2
以下の環境向けのサポートを終了しました。
-
Fedora 40
-
Google Chrome 123.x ~ 125.x
-
Microsoft Edge 123.x ~ 125.x
-
Mozilla Firefox 124.x ~ 126.x
-
VS Code 1.88.1 ~ 1.90.2
サポート対象のバージョンの完全なリストについては、「システム要件」を参照してください。
2025.4 における Visual Studio 2015 プラグインのサポート終了
Microsoft による Visual Studio 2015 の延長サポート終了に伴い、リリース 2025.4 からは、Visual Studio 2015 について、Visual Studio 用 Klocwork Desktop プラグインが提供またはサポートされなくなります。
2025.2 における kwmatch ユーティリティの削除
リリース 2025.1 以降は、kwmatch ユーティリティが削除されています。以前のバージョンからアップグレードする場合は、プロジェクト分岐の管理にはストリームを使用し、指摘のプロジェクト間同期には kwxsync を使用することをお勧めします。
以前に特定のプロジェクトに kwmatch を使用していて、そのためにデータベースを作成し、それらのプロジェクトを 2025.2 以降に移行した場合、データベースは使用されなくなるので、削除することができます。
2025.2 における dbvalidate クリーンアップユーティリティの削除
リリース 2025.2 からは、dbvalidate クリーンアップユーティリティを直接実行できなくなりました。重複する指摘とコメントを削除するための dbvalidate コマンドのいくつかは、Klocwork サポートから特に指示がある場合は、引き続き使用することができます。
2025.1 でのストリーム用の別個ライセンスの廃止
リリース 2025.1 からは、ストリーム用の別個のライセンスは不要になりました。
2024.3 以降における NIS アクセス制御のサポート終了
リリース 2024.3 以降では、NIS アクセス制御はサポートされなくなります。リリース 2024.2 では、一部の機能が影響を受ける可能性があります。
以前のバージョンからリリース 2024.2 に移行する場合は、別の認証方法に切り替える必要があります。アップグレード後も引き続きサインインできるように、移行前に認証方法を切り替えることをお勧めします。
移行情報については、NIS アクセス制御のセットアップを参照してください。
2024.3 以降における CentOS Linux 7 のサポート終了
リリース 2024.3 以降では、CentOS Linux 7 はサポートされなくなります。