Klocwork 2022.4 の新機能

以下は Klocwork 2022.4 の新機能です。アップグレードする場合、Klocwork の使用方法に影響を与える項目については、制限事項も参照してください。

C/C++

このリリースでは、

  • Klocwork が相対パスを処理する方法を改善することで欠陥の抑制を強化しました

  • 複数の MISRA 規則のサポートを追加しました

C#

バージョン 7.3 の C# 言語仕様の完全なサポートを追加しました。

循環的複雑度メトリックの計算方法も変更しました。例外に関しては、try 文ではなく catch 文をカウントするようになりました。

Java

このリリースでは、解析のための Java 14 API の完全なサポートと AST 関連の欠陥の検出を含む、Java 14 のサポートを追加しました。

また、Java DISA STIG v5 分類基準に大幅な追加も行い、基準の範囲が大幅に増加しました。

Android 13

Android 13 は、Android での Java 解析の継続的な改善を含め、C/C++ と Java の両方の解析のために Klocwork によって完全にサポートされています。

Kotlin

Gradle の Kotlin DSL 形式がサポートされるようになりました。これにより、サポートされている IDE で、従来の Groovy DSL に代わる構文が用意され、編集体験が充実します。

ポータルでのカスタマイズ可能なリンク

テクニカルライブラリサポート、またはリソースの見出しの下で、ポータルの右側に表示されるカスタムリンクを追加できます。詳細については、Validate へのカスタムリンクの追加を参照してください。

IDE プラグインのサポート

複数の新しいバージョンの CLion および IntelliJ IDEA のサポートを追加するなど、IDE プラグインのサポートを改善しました。

Helix QAC 規則構成ファイルの管理

あるプロジェクト向けに Helix 規則構成ファイル (RCF) を管理する場合、その構成を Validate にインポートできるようになりました。詳細については、Helix QAC 規則構成ファイルのインポートを参照してください。

コーディング基準

このリリースには、次のコーディング標準に関する新しい標準と拡張標準カバレッジが含まれています。

  • CERT C
  • CWE
  • Java 向け DISA STIG
  • MISRA
  • OWASP

Klocwork チェッカーの改善

リリースを重ねるたびに、当社は指摘検出を改善して最先端の機能をお客様に提供しています。結果として、精度とカバレッジが向上すると解析結果が変わると予想されます。

新しい Klocwork チェッカー

チェッカー 説明
MISRA.LANG.EXTENSIONS この MISRA チェッカーは、MISRA C 2012 Rule 1.2 のサポートに対応しています。
MISRA.PTR.SUB この MISRA チェッカーは、MISRA C 2012 Rule 18.2、MISRA C++:2008 Rule 5-0-17、および MISRA C:2004 Rule Rule 17.2 のサポートに対応しています。
MISRA.PTR.SUB.OBJECT この MISRA チェッカーは、MISRA C 2012 Rule 18.2、MISRA C++:2008 Rule 5-0-17、および MISRA C:2004 Rule Rule 17.2 のサポートに対応しています。

変更された Klocwork チェッカー

チェッカー 説明
AUTOSAR.DECL.NONTYPE_SPECIFIER 誤検知を削減しました
CERT.DCL.REF_TYPE.CONST_OR_VOLATILE 誤検知を削減しました
DBZ.GENERAL 誤検知を削減しました
DBZ.ITERATOR チェッカーへの全体的な改善
DBZ.ITERATOR.CALL チェッカーへの全体的な改善
JS.TS.NO.UNNECESSARY.CONDITION チェッカーへの全体的な改善
JS.TS.STRICT.BOOLEAN.EXPRESSIONS チェッカーへの全体的な改善
MISRA.FOR.COND.PURE チェッカーへの全体的な改善
MISRA.FUNC.UNMATCHED.PARAMS 誤検知を削減しました
MISRA.INCGUARD 誤検知を削減しました
MISRA.MEMB.NON_STATIC 誤検知と検出された新たな欠陥を削減しました
STRONG.TYPE.ASSIGN.CONST 新たな欠陥が検出されました
UNINIT.STACK.MUST 誤検知を削減しました

有効または無効なチェッカー

このリリースのチェッカー構成ファイルのデフォルトの enabled フィールドに追加されたチェッカーはありません。

分類基準の改善

インストールの一部として、チェッカーを MISRA、CWE、OWASP、DISA STIG などの規格にマッピングするカスタム分類基準ファイルがいくつか提供されています。

分類基準 新規または更新

cert_c_all.tconf と cert_c_all_ja.tconf

cert_c_rules.tconf and cert_c_rules_ja.tconf

チェッカーマッピングを以下の規則に追加または更新しました。

  • CERT ENV33-C

  • CERT EXP36-C

cwe_2021_top_25_java.tconf と cwe_2021_top_25_java_ja.tconf

チェッカーマッピングを以下の弱点に追加または更新しました。

  • CWE-89

cwe_all_cxx.tconf と cwe_all_cxx_ja.tconf

チェッカーマッピングを以下の弱点に追加または更新しました。

  • CWE-416

  • CWE-562

  • CWE-783

disa_stig_v5_cs.tconf と disa_stig_v5_cs_ja.tconf

チェッカーマッピングを以下の ID に変更しました。

  • V-222606 (APSC-DV-002530)

  • V-222607 (APSC-DV-002540)

  • V-222609 (APSC-DV-002560)

  • V-222612 (APSC-DV-002590)

disa_stig_v5_java.tconf and disa_stig_v5_java_ja.tconf

チェッカーマッピングを以下の ID に変更しました。

  • V-222396 (APSC-DV-000160)

  • V-222397 (APSC-DV-000170)

  • V-222425 (APSC-DV-000460)

  • V-222430 (APSC-DV-000510)

  • V-222515 (APSC-DV-001460)

  • V-222522 (APSC-DV-001540)

  • V-222536 (APSC-DV-001680),

  • V-222542 (APSC-DV-001740)

  • V-222543 (APSC-DV-001750)

  • V-222551 (APSC-DV-001820)

  • V-222554 (APSC-DV-001850)

  • V-222555 (APSC-DV-001860)

  • V-222569 (APSC-DV-002010)

  • V-222571 (APSC-DV-002030)

  • V-222572 (APSC-DV-002040)

  • V-222577 (APSC-DV-002230)

  • V-222585 (APSC-DV-002310)

  • V-222589 (APSC-DV-002350)

  • V-222596 (APSC-DV-002500)

  • V-222602 (APSC-DV-002490)

  • V-222604 (APSC-DV-002510)

  • V-222606 (APSC-DV-002530)

  • V-222608 (APSC-DV-002490)

  • V-222609 (APSC-DV-002560)

  • V-222612 (APSC-DV-002590)

  • V-222641 (APSC-DV-003100)

  • V-222642 (APSC-DV-003110)

Helix QAC 分類基準 Helix QAC 分類基準は、Helix QAC バージョン 2022.4 に更新されています。
jsf_av_rev_c_cpp.tconf と jsf_av_rev_c_cpp_ja.tconf

チェッカーマッピングを以下の規則に変更しました。

  • 規則 001

  • 規則 003

  • 規則 110

misra_c_2004_certified.tconf と misra_c_2004_certified_ja.tconf

チェッカーマッピングを以下の規則に追加または更新しました。

  • 17.2

  • 17.3

misra_c_2012_c90_all_checkers.tconf と misra_c_2012_c90_all_checkers_ja.tconf

misra_c_2012_c90_certified.tconf と misra_c_2012_c90_certified_ja.tconf

misra_c_2012_c99_all_checkers.tconf と misra_c_2012_c99_all_checkers_ja.tconf

misra_c_2012_c99_certified.tconf と misra_c_2012_c99_certified_ja.tconf

misra_c_2012_with_amd1_c90_all_checkers.tconf と misra_c_2012_with_amd1_c90_all_checkers_ja.tconf

misra_c_2012_with_amd1_c90_certified と misra_c_2012_with_amd1_c90_certified_ja.tconf

misra_c_2012_with_amd1_c99_all_checkers.tconf と misra_c_2012_with_amd1_c99_all_checkers_ja.tconf

misra_c_2012_with_amd1_c99_certified.tconf と misra_c_2012_with_amd1_c99_certified_ja.tconf

misra_c_2012_with_amd2_c11_all_checkers.tconf と misra_c_2012_with_amd2_c11_all_checkers_ja.tconf

misra_c_2012_with_amd2_c11_certified.tconf と misra_c_2012_with_amd2_c11_certified_ja.tconf

チェッカーマッピングを以下の規則に追加または更新しました。

  • 1.2

  • 18.2

  • 18.3

misra_c_2012_with_amd2_c90_all_checkers.tconf と misra_c_2012_with_amd2_c90_all_checkers_ja.tconf

misra_c_2012_with_amd2_c90_certified と misra_c_2012_with_amd2_c90_certified_ja.tconf

misra_c_2012_with_amd2_c99_all_checkers.tconf と misra_c_2012_with_amd2_c99_all_checkers_ja.tconf

misra_c_2012_with_amd2_c99_certified.tconf と misra_c_2012_with_amd2_c99_certified_ja.tconf

MISRA C 2012 (改訂 2) に関連する新しい分類基準。
misra_cpp_2008_certified.tconf と misra_cpp_2008_certified_ja.tconf

チェッカーマッピングを以下の規則に追加または更新しました。

  • 5-0-17

owasp_2013_10_java.tconf と owasp_2013_10_java_ja.tconf

以下の ID へのチェッカーマッピングを追加または修正しました。

  • A1

  • A6

  • A8

サポートされているコンパイラへの改善

以下のコンパイラのサポートを追加または改善しました。

  • Clang
  • コンパイラ キャッシュ ツール
  • Lapis Technology CCU8

  • GNU
  • Tasking Tricore

サポートされる C/C++ コンパイラの全リストについては、「ビルド統合でサポートされる C/C++ コンパイラ」を参照してください。

ライセンス

Klocwork は、Reprise License Manager (RLM) をサポートするようになりました。FLEXlm/FlexNet Publisher のサポートは廃止されていますが、Klocwork 2023.1 のリリースまで引き続き機能します。Klocwork 2022 の残りのリリースについて、既存の FLEX ライセンスファイルを引き続き使用できます。新しいライセンスファイルが必要な場合は、license@perforce.com 宛てにお問い合わせください。

2021 ライセンスは、Klocwork 2022.4 との互換性がありません。最新バージョンの製品を使用するには、新しいライセンスが必要です。ライセンスの入手に関しては、license@perforce.com 宛てにお問い合わせください。

システム要件の変更

このリリースでは、次のサポートが追加されました。

  • Windows 10 バージョン 22H2

  • Debian 10.13、11.5
  • Red Hat Enterprise Linux 8.7
  • Oracle Linux 8.6
  • Amazon Linux 2 (2.0.20221004.0 Update)

  • Fedora 37

  • Leap 15.4

  • SUSE Enterprise 12 SP4 ~ SP5

  • Eclipse 2022-09 (4.25)

  • Android Studio Dolphin (2021.3.1)

  • Visual Studio 2017 15.9.51

  • Visual Studio 2019 16.11.21

  • Visual Studio 2022 17.3.4

  • Visual Studio Code 1.63.2 (1.73.1 まで)

  • IntelliJ IDEA 2022.1 (2022.1.4 まで)、2022.2 (2022.2.3 まで)

  • CLion 2021.2 (2021.2.4 まで)、2021.3 (2021.3.4 まで)、2022.1 (2022.1.3 まで)、2022.2 (2022.2.4 まで)

  • Microsoft Edge 107.x

  • Firefox 107.x、102.x ESR

  • Chrome 97.x ~ 107.x

  • Jenkins 2.378

このリリースでは、次のサポートを終了しました。

  • Windows 8.1

  • Debian 9.x

  • Fedora 35

  • Leap 15.3

  • SUSE Enterprise 12 SP3

  • Visual Studio 2012

  • Visual Studio 2013

  • Visual Studio Code 1.49.3 ~ 1.63.1

  • CLion 2019.2

  • Microsoft Edge 93.x ~ 96.x

  • Firefox 92.x ~ 95.x

  • Chrome 93.x ~ 95.x

サポート対象のバージョンの完全なリストについては、「システム要件」を参照してください。

Klocwork 2020 のメンテナンス終了

Klocwork 2020 の全バージョンのメンテナンスは、2022 年 3 月 31 日に終了しました。メンテナンス終了 (end of maintenance: EOM) 日と販売終了 (end of sale: EOS) 日も 2022 年 3 月 31 日でした。Klocwork リリースのサポート可否についての詳細は、「Klocwork 製品のライフサイクル」を参照してください。

事前告知

今後のリリースで予定されている次の変更に注意してください。

Klocwork 2023.1 での Path API バージョンのアップグレード

Klocwork 2023.1 がリリースされた後に、潜在的な競合状態に関してカスタムチェッカーをレビューし、2023.1 Klocwork Path API のヘッダーとライブラリを使用することで、再コンパイルすることをお勧めします。再コンパイルされていない以前のカスタムチェッカーは引き続き動作しますが、並列化機能の改善を使用することはできません。

Klocwork 2023.1 の時点での FLEXlm/FlexNet Publisher の販売終了通知

これは、FLEXlm/FlexNet Publisher ライセンスファイルの販売終了とサポート終了の 6 か月前の通知です。

Klocwork 2023.1 の時点で、Klocwork は、FLEXlm/FlexNet Publisher から Reprise License Manager (RLM) に移行することで、ライセンス管理ツールを変更することになります。

Reprise 用の新しい製品ライセンスファイルが生成される予定であり、Klocwork 旧バージョン用の FLEX ライセンスファイルは、必要な場合に提供されます。

Klocwork 2023.1 の時点での macOS の販売終了通知

Klocwork 2023.1 以降では、次のオペレーティングシステムとインストーラーはサポートされなくなります。

  • macOS