制限事項

これらの制限事項は 2025.4 に適用されます。以前のバージョンを使用している場合は、その特定のリリースの制限事項を参照してください。

インストール、アップグレード、および展開に関する制限事項

仮想化環境で古い Linux カーネルを使用すると不安定になる可能性がある

リリース 2025.3 以降では、MariaDB の更新によって、特に Docker の AUFS などの非推奨のテクノロジーを使用している仮想化環境で、古い Linux カーネル (4.x 以前) が不安定になる可能性があります。

回避策:

最新のインフラストラクチャで Validate サーバーを実行することをお勧めします。これには、更新された OS バージョン、最近のカーネルリリース、サポートされている仮想化レイヤーが含まれます。

以前の Validate バージョンが正常にシャットダウンされていない場合、移行は失敗します。

Validate バージョン 2025.2 以前から 2025.3 以降にアップグレードする場合、以前のデータベース (MariaDB) プロセスが正常にシャットダウンされていないと (たとえば、mysqld 手動で停止されていたりすると)、移行が失敗する可能性があります。根本原因は、MariaDB 10.4 以降ではクラッシュ後に InnoDB ストレージエンジンのアップグレードがサポートされなくなったことです。その結果、_shared データベースのロードが失敗し、Validate サーバーが起動しません。

回避策: アップグレードする前に、Validate サーバーが正常にシャットダウンされていることを確認してください。mysqld プロセスは手動で停止しないでください。

サーバーが正常にシャットダウンされずにこの問題が発生した場合は、以下のようにしてください。

  1. Validate 2025.2 以前に戻します。

  2. サーバーを起動して、クリーンシャットダウンを許可します。

  3. 2025.3 以降へのアップグレードを続行します。

マウントされたドライブから、または別のユーザーとして Validate サーバーを実行する場合のパーミッションの問題 (Linux)

マウントされたドライブに Validate サーバーがインストールされている場合、またはインストールを実行したユーザーとは別のユーザーがサーバーにアクセスする場合、プロジェクトルートを実行するときにパーミッションの問題が発生する可能性があります。このセットアップは推奨されません。

最善の結果を得るため、プロジェクトルートが配置されているのと同じマシンにツールをインストールし、インストール時と実行時の両方で同じユーザーアカウントを使用することをお勧めします。

回避策: パーミッションの問題に対処するには、Validate Server インストールの 3rdparty/tomcat/bin ディレクトリにある .sh ファイルのパーミッションを更新してください。例:

find "/kw/Validate/2025.2/" -type f -wholename "/3rdparty/tomcat/bin/.sh" | xargs chmod 775

複数のソースルートから同じターゲットルートに直接プロジェクトを復元すると、プロジェクトが上書きされるリスクがある

異なるプロジェクトルートから複数のプロジェクトを同じ復元プロジェクトルートに復元すると、既存のプロジェクトデータが上書きされるリスクがあります。たとえば、projects_root_A の Project A と projects_root_B の Project B を両方とも projects_root_C に復元した場合、A の後に B を復元すると、A の要素が上書きされ、使用できなくなる可能性があります。

回避策: このリスクを回避するには、復元ルートごとに 1 つのプロジェクトのみを復元し、それを共有プロジェクトまたは共通プロジェクトルートにインポートしてください。詳細については、「validate_restore を使用してプロジェクトとサーバーの情報を復元する」を参照してください。

バックアップまたは復元中に MySQL の「ソケットエラー」が表示される

コマンドでデータベースホストが正しく指定されていない場合、Linux でバックアップおよび復元スクリプトを実行しているときに MySQL の「ソケットエラー」が発生することがあります。

回避策: スクリプトを正しい MySQL ホストに接続するには、コマンドに --db-host パラメーターを追加し、その後にデータベースが実行されているホストの完全修飾ドメイン名 (FQDN) または IP アドレスを指定してください。 例:

backup --db-host 127.0.0.1

Windows でコマンドラインインストール後に Validate サーバーの起動が失敗する

リリース 2024.2 以降で、Windows のコマンドラインを使用してインストールした場合、特にネットワークドライブから実行した場合に、Validate サーバーの起動が失敗することがあります。この指摘は、ファイルパス検索ライブラリが Java のネットワークパスを解決できないために発生します。

回避策: 現在、ネットワークドライブから Klocwork ツールまたは Validate ツールを実行することはお勧めしません。ネットワークドライブから Validate サーバー実行可能ファイルを実行する場合は、必ず Java 17 をローカルにインストールし、PATH または KW_JAVA 環境変数に追加してください。

2024.2 で作成された無期限のアプリケーショントークンは、実際には 30 日後に期限切れになります。

軽微なバグのため、2024.2 で有効期限なしで作成されたアプリケーショントークンは実際には 30 日後に期限切れになっていました。30 日後に無期限のトークンを使用して認証を実行しようとすると、認証が失敗します。この指摘は Validate 2024.3 で修正されています。

回避策:

  • カスタムの有効期限 (Perforce は 2 年を推奨) を指定してアプリケーショントークンを作成します。
  • Validate 2024.3 以降にアップグレードします (利用可能な場合)。その後、新しいアプリケーショントークンを作成し、[有効期限] フィールドを [なし] に設定します。

SAML または OIDC 認証を使用するときに、kwauthconfig が資格情報を要求する指摘

Validate サーバーを SAML または OIDC 認証を使用するように構成している場合、kwauthconfig を使用してデータベースパスワードを設定またはリセットしようとすると、サーバーに接続するときにユーザー名とパスワードの資格情報の入力が誤って求められます。

回避策: kwauth --url <Validate server>:<port> を実行して、Validate サーバーで認証します。認証が成功したら、kwauthconfig を再起動します。資格情報の入力は求められません。

2024.2 以前の Klocwork ツールとプラグインを使用している場合、SAML または OIDC を認証できません

SAML または OIDC 対応サーバーで Klocwork ツールまたはプラグインバージョン 2024.1 以前を使用する場合は、リリース 2024.2 以降の kwauth ツールを使って認証する必要があります。

また、古いツールがサーバーで認証できるようにするには、認証中に --insecure フラグを使用する必要があります。このフラグを使用すると、ユーザーは自分の資格情報を安全でない方法で ltoken に保存できるため、必要な場合にのみ使用する必要があります。

kwconfigeditor は未使用の重大度 0 を表示します

これは予想されることであり、QAC プロジェクトでの重大度 0 の使用に関連しています。重大度 0 を使用する Klocwork プロジェクトはないため、これは無視できます。

Klocwork と QAC の混合プロジェクトでは、最後にアップロードされたプロジェクトに基づいて重大度レベルが表示されます。

混合プロジェクトは技術的にサポートされていません。Klocwork と QAC の両方の結果を同じプロジェクトにアップロードしようとすると、Validate の指摘リストに表示される重大度は、最後にアップロードされたプロジェクトタイプによって異なることに注意してください。QAC 結果が最後にアップロードされた場合は、QAC 重大度が使用され、その逆も同様です。

Debian 10.7 にアップグレードした後、kwgcheck が使用できない

Debian 10.7 にアップグレードすると、ライブラリがないため Klocwork Desktop Analysis の kwgcheck を起動できないことがあります。

回避策: 足りないライブラリをインストールするため、以下のコマンドを実行してください。

sudo apt-get install --reinstall libgtk2.0-0

Klocwork Desktop ツールは以前のサーバーに接続できない

2023.4 以降では、Klocwork Desktop ツールは以前の Klocwork サーバーに接続できません。

回避策: Klocwork Desktop ツールを Klocwork サーバーに接続するには、両方に同じリリースバージョンを使用します。

プロジェクトのビルドがアップロード時にハングする

インフラストラクチャ関連の構成が原因で、クライアントとサーバー間のネットワーク接続の問題が発生すると、kwadmin の負荷が無期限にハングすることがあります。

回避策: kwadmin ロードの隠しオプション --hard-timeout を使用して、タイムアウト値を時間、分、または秒で指定します。クライアントからサーバーへのリクエストがタイムアウト値の間応答しない場合、load コマンドは失敗します。

例: kwadmin load myProject myTables --hard-timeout 10m

チェッカー設定の移行に関する制限

アップグレードプロセス中 (インポートプロセス経由) では、チェッカー構成ファイルに関して次の制限があることに注意してください。

  • デフォルトのチェッカー構成ファイルへの変更のみがインポートされます。以前のインストールでデフォルト以外のチェッカーを有効にしており、新しいバージョンでその名前が変更された場合、新しいビルドではチェッカーが表示されません。Klocwork の新しいバージョンでチェッカーを再度手動で有効にする必要があります。
  • デフォルトで有効になっていたチェッカーの名前が Klocwork の新しいバージョンで変更された場合、新しいインストールの最初のシステムビルドまで、新しいコードは表示されません。

kwcollect が新しい解析エンジンによって生成されたテーブルで失敗する

回避策: お客様のプロジェクトが Klocwork 2018 の新しい解析エンジンで構築されている場合は、コマンドラインに '--all-sources' オプションを含める必要があります。この要求事項は、お客様のプロジェクトが Klocwork 2018 の新しい解析エンジンなしで構築された場合には適用されません。お客様のプロジェクトが新しい解析エンジンにより構築されたかどうかを判定するには、ビルドの出力テーブルフォルダーのルートに格納されるビルドログで、ビルドプロセスの出力を調べます。「Selected Engines」で始まる行を検索します。角括弧の中に 'MODERN' が表示されたら、お客様のプロジェクトは Klocwork 2018 の新しい解析エンジンを使用して構築されています。

Debian 10.x 以降でライセンスサーバーを実行できない

バージョン 10.x の Debian は、Linux Standard Base コア (lsb-core) をもはやサポートしていません。このため、ライセンスサーバーは Debian 10.x 以降のプラットフォームで実行できません。

kwauth が HTTP/1.1 ヘッダーを正しく設定しない

Klocwork サーバーの IP アドレスが複数のホスト名に関連付けられているか、リバースプロキシの背後にある場合、kwauth は Klocwork サーバーの FDQN を正しく解決しないことがあります。

回避策: この問題を解決するために、指定された構成ファイルのパラメーターに基づく条件付きホスト解決を追加しました。それを「false」に設定すると、リモートサーバーの URL に FQDN を指定できます。ホスト解決を「false」に設定するには、次のアドレスを使用してクライアント側で構成ファイルを作成する必要があります。
{client_tools_install_folder}\config\client_config.xml
そのファイルは次の構造である必要があります。
<?xml version="1.0" encoding="UTF-8"?><params>   <host resolveHost="false" /></params>

64 ビット REPCXX のメモリ制限

2020.4 SR1 では、64 ビット REPCXX (当社の標準的な C/C++ 解析エンジン) は、デフォルトで最大 16 ギガバイト (GB) のメモリ使用に制限されます。この制限を超える試みが発生すると、終了コード 121 と以下のメッセージが生成されて REPCXX 処理が終了します。
"memory: REPCXX has exceeded the memory threshold of 16000000 Kb, mem_usage={0} Kb. 
Memory threshold can be increased by passing a value (in GB) to REPCXX through the 
'--memory-limit=' option or through the 'KW_CLASSIC_ENGINE_MEMORY_LIMIT' environment variable." (メモリ: REPCXX はメモリしきい値である 16000000 Kb を超えました。mem_usage={0} Kb。メモリしきい値は、'--memory-limit=' オプションを使用して REPCXX に値 (GB 単位) を渡して増やすことも、'KW_CLASSIC_ENGINE_MEMORY_LIMIT' 環境変数を介して増やすこともできます。)

回避策: エラーメッセージに示されるように、16 GB のメモリ上限は新しい --memory-limit REPCXX オプションまたは 'KW_CLASSIC_ENGINE_MEMORY_LIMIT' 環境変数を使用してオーバーライドできます。たとえば、メモリ上限を REPCXX プロセスあたり 32 GB に上げる場合は、オプション --add-compiler-options '--memory-limit=32' を指定して kwbuildproject を実行できます。

メモリ上限が引き上げられたことの確認として、REPCXX プロセスの開始時に以下のメッセージがビルドログに出力されます。
「REPCXX memory input set to 32 GB (32000000 KB) (REPCXX メモリ入力は 32 GB (32000000 KB) に設定されています)」

ビルドのロードを試みる際の 'kwloaddb: Java ヒープスペース' エラー

接続されたプロジェクトからのロードまたはビルド中、あるいは kwcheck run を実行するときに、「OutOfMemory (メモリ不足)」例外が発生することがあります。

回避策: このエラーを修正するために、java_wrappers_memory.conf ファイルで kwloaddb のメモリ量を増やしてみることができます。このエラーが引き続き表示される場合は、カスタマーサポートにお問い合わせください。

ストリームを含むデータベースを検証しようとすると、dbvalidate はエラーを出力する

ストリームを伴うプロジェクトの場合、dbvalidate を実行しようとすると次のようになります。java -jar /<path-to-server>/class/dbvalidate.jar --projects-root /<path-to-projects-root>/projects_root --project a

dbvalidate は、ステップ a1、k、場合によっては j と l でエラーメッセージを誤って出力します。これらのメッセージは無視できます。

Linux で 'sconf' ファイルを使用しても、指定したファイルで欠陥がフィルター処理されない

'sconf' ファイルで Windows スタイルのパスを使用している場合、接続されたプロジェクトは整合性のない結果をもたらす可能性があります。

回避策: Windows スタイルのファイルパス (たとえば、'C:\Checkout\PRs\PR-59822\test.cpp' または 'C:\\Checkout\\PRs\\PR-59822\\test.cpp') の使用を回避します。すべてのプラットフォーム全体で、UNIX スタイルのパスを使用できます。例:

Windows: C:/Checkout/PRs/PR-59822/test.cpp
Linux: /checkout/mydir/test.cpp

'C:\Checkout\PRs\PR-59822\test.cpp' 形式はサポートされていないため、すべてのプラットフォームで回避するようにしてください。

ビルド統合の制限事項

ストリームの削除後にロード操作が失敗する

この問題には、特にストリームの削除を実行した後に Validate サーバー上の影響を受けるプロジェクトでロードを実行できないという特徴があります。

回避策: Klocwork 2025.4 に含まれている dbvalidate.jar クリーンアップユーティリティを使用してください。このユーティリティは、問題の原因である Lucene インデックスを修正する役割を果たします。このユーティリティは、一度に 1 つの指定されたプロジェクトに対して実行することも、プロジェクトが指定されていない場合はすべてのプロジェクトに対して実行することもできます。影響を受けないプロジェクトに対して実行しても効果はありません。

ユーティリティを実行するには、以下の Java コマンドを使用します。

java -cp <validate_server_root>/class/dbvalidate.jar com.klocwork.dbvalidate.CleanupDeletedStreamsInfo.java -r <projects_root> [--project <project_id>]

Java、Validate、または projects_root パスにスペースが含まれている場合は、パスを引用符で囲む必要があります。

Validate におけるコメント行レポートの問題 (リリース 2025.1 ~ 2025.3)

Validate リリース 2025.1 から 2025.3 で、Validate プロジェクト構成レポートに誤ってコメント行が 0 行と表示される問題が発生する場合があります。

回避策オプション 1:

個々のプロジェクトの場合:

  1. Validate でプロジェクトを開きます。

  2. [構成] ページに移動します。

  3. 左下のペインの [構成ファイル] で、stored_metrics.smc ファイルを開きます。

  4. メトリック LINESCOMM をファイルに追加して保存します。

  5. ビルドをロードします。ソースファイルにコメントが含まれている場合は、その数が表示されるようになります。

すべてのプロジェクトの場合:

  1. projects_root フォルダーを見つけます。

  2. <path-to-projects_root-folder>\projects\workspace\rules に移動します。

  3. stored_metrics.smc ファイルを開きます。

  4. ファイルレベルのメトリックセクションの下に、以下の行を追加します。

    LINESCOMM, # number of lines of comments

  5. <path-to-projects_root-folder>\projects\<project-name>\rules\stored_metrics.smc を編集することにより、それぞれのプロジェクトについて同様の手順を繰り返し実行します。

  6. この変更後、既存のプロジェクトにロードされているすべてのビルドだけでなく、その後に作成されたすべての新しいプロジェクトで、正しいレポートが生成されるようになります。

回避策オプション 2:Validate 2025.4 へのアップグレード

projects_root をアップグレードして移行すると、その後にロードされるすべてのビルドで、Validate レポートにコメント行の数が正しく報告されるようになります。

Tomcat クライアント接続が枯渇して kwadmin/validate admin load が断続的に失敗する場合がある

特定の環境で、以下のようなエラーがクライアント側で発生して、kwadmin load または validate admin load が失敗します。

Could not connect to <server info> ...
com.klocwork.projapi.ServerException: Could not connect to <server info>

このエラーにもかかわらず、後でサーバー上でビルドが正常に完了したように見えることがあります。この動作は、通常、複数の操作が進行中であり、サーバーの負荷が高い場合に発生します。

根本原因は、多くの場合、使用可能な Tomcat スレッドまたはクライアント接続が不足することです。その結果、伝播段階で kwadmin ツールがサーバーからタイムリーな応答を受け取れなくなります。

回避策: この問題を緩和するには、server.template にある Tomcat 構成で接続関連の上限値を引き上げます。具体的には、以下のようにします。

  • maxThreads をデフォルトの 64 からさらに大きい値 (たとえば、128) に増やす

  • acceptCount をデフォルトの 200 からさらに大きい値 (たとえば、400) に増やす

kwloaddb、kwadmin および kwjava のデフォルトのメモリ設定を使用して Android 4.4 (KitKat) をロードできない

Android プラットフォームをビルドする場合、ロードプロセスを呼び出すマシン上の特定の Klocwork ツールのメモリ設定を増やす必要があります。これらの値は、<klocwork_install>/config/java_wrappers_memory.conf ファイルで変更できます。

C# 解析の制限事項

C# 統合プロジェクトでサポートされていない機能

次の機能は C# 統合プロジェクトではサポートされていません。

機能 詳細
ビルド統合
Validate

C# デスクトップ解析でサポートされていない機能

次の機能は C# デスクトップ解析ではサポートされていません。

  • Visual Studio でサーバーの指摘を表示
  • Visual Studio でのファイルレベルの解析 (ソリューションとプロジェクトのみを解析できます)
  • ナレッジベースの使用

 

Java 解析の制限事項

Android 14 で Klocwork 2024.4 以前を実行すると java.lang.StackOverflowError の指摘が発生する

Android 14 で Klocwork 2024.4 以前を実行すると、Java の解析でエラーが発生します。

回避策: kwandroid --ignore-files を使用して、frameworks/libs/modules-utils/java/com/android/internal/util/Preconditions.java ファイルを無視してください。

Python に関する制限事項

Python チェッカーはサポートされていない

リリース 2023.3 以降では、Python 分類基準にリストされている以下のチェッカーはサポートされていません。これらはデフォルトでは無効になっていますが、手動で有効にすることができます。

E0001

F0001

I0001

I0020

E0013

F0002

I0010

I0021

E0014

F0010

I0011

I0022

E0015

F0011

I0013

I0023

Validate の制限事項

ソースクロスリファレンスで新しい Java バージョンとの互換性が確保されないことがある

ソースクロスリファレンスツールで、新しい Java バージョンに関するエンティティおよび関係の問題が発生することがあります。

Validate はサポートされている Linux ディストリビューションでのみ実行する

サポートされていないオペレーティングシステムまたはカーネル (Ubuntu 16 や Linux カーネル 4.x など) で Validate サーバーを実行すると、MariaDB のアップグレードとの非互換性や非推奨の Docker ファイルシステムが原因で失敗する可能性があります。

回避策: 安定性とパフォーマンスを確保するには、サポートされているバージョンの Linux にアップグレードしてください。

RLM 16 には Linux でのドングルの使用に関する既知の問題がある

Validate 2025.1 以降には、RLM サーバーバージョン 16 が付属しています。Linux でドングルを使用すると、RLM  16 が正しく起動しないことがあります。

回避策: ドングルは Windows ライセンスサーバーと共に使用してください。

データベースアクセスの失敗: データベースエラーが発生しました

リリース 2025.1 以降で、「データベースアクセスの失敗: データベースエラーが発生しました」というメッセージを伴う接続障害エラーが発生します。これは、MySQL データベースドライバーの代わりに使用されるようになった MariaDB ドライバーによるエラーコードおよび SQL 状態値の実装の違いによるものと思われます。

回避策: 接続障害の値を追加してください。手順については、「データベースへのアクセスが失敗してデータベースエラーが発生する」を参照してください。

異なるバージョンの Validate を使用してバックアップを復元することはできない

あるバージョンの validate_backup を使用して作成されたバックアップを異なるバージョンの validate_restore を使用して復元することはできません。たとえば、Validate 24.4 で作成されたバックアップは、Validate 24.3 または 25.1 を使用して復元することはできません。

回避策: プロジェクトまたはサーバーをバックアップおよび復元するには、同じバージョンの Validate を使用してください。新しいサーバーバージョンに移行する場合は、互換性の指摘を回避するため、移行が完了してから、新しいプロジェクトとサーバーのバックアップを作成することをお勧めします。

Validate 2024.1 以前のサーバーにサインインできません

Validate 2024.1 以前のサーバーにサインインできない、または Trying to rerun async when not logged in というエラーが発生します。

回避策: Validate サーバーのブラウザーキャッシュと Cookie を消去します。

Validate/Validate で、「モジュール」ページのツリー構造に CI ビルドパスが表示されない

新しいモジュールを作成すると、ファイルツリーには最新のサーバービルドからのファイルが常に表示されます (アップロードされた最新のビルドが kwciagent からの CI ビルドであった場合でも)。

回避策: CI ビルドからファイルまたはパスを含めるようにする場合は、'ツリーを使用する' フィールドを使用する代わりに、'パスパターン' を使用してそれらを手動で入力する必要があります。

Visual Studio 拡張機能の制限事項

レガシーエンジンを標準解析モードで使用する場合の問題

注意: Visual Studio 拡張機能のレガシーエンジンは非推奨であり、将来のリリースで削除される予定です。

Visual Studio レガシーエンジンを使用する場合、標準解析モードの使用中に問題 (欠陥がロードされないなど) が発生する可能性があります。

回避策: クラシック解析モードに切り替えてください。

Klocwork ソリューションプロパティエラー: Klocwork のサポート対象プロジェクトがソリューションにありません

Visual Studio で、Klocwork 拡張機能のロードが完了する前にアプリケーションの右下付近にある [Klocwork 同期] をクリックすると、[ソリューションプロパティ] ウィンドウに「Klocwork のサポート対象プロジェクトがソリューションにありません」というエラーメッセージが表示されます。

回避策: Visual Studioを初めて開いたときには、最上部にあるメニューバーで [拡張機能] > [Klocwork] > [ソリューションプロパティ] をクリックしてください。[ソリューションプロパティ] がグレー表示される場合、Klocwork 拡張機能はまだロード中です。[ソリューションプロパティ] がクリックできるようになるまで待ってから、[ソリューションプロパティ] をクリックするか、またはアプリケーションの右下付近にある [Klocwork同期] をクリックしてください。

Visual Studio 拡張機能 2024.1 以前で、モダン認証が有効になっている Validate サーバーを使用した場合の認証失敗

最新の認証 (modern-jit または modern-pp) を使用するようにアップグレードされた Validate サーバーで Visual Studio 拡張機能バージョン 2024.1 以前を使用すると、指摘が発生します。ログインしてユーザー名とパスワードを入力するように求められても、認証は失敗します。

回避策:

  1. 2024.2 authtools パッケージ以降のバージョンをインストールします。

  2. 新しい kwauth でデバイス認証を実行し、--insecure フラグを追加します。ユーザー名が変更されている可能性があるため、システム管理者に問い合わせることが必要になる場合があります。

Visual Studio 拡張機能 2024.1 を引き続き使用することも、最新のプラグインにアップグレードすることもできます。最新のプラグインでは、デフォルトで kwcheck に基づく新しい解析エンジンが使用されることに注意してください。

分析ごとに指摘の数が変わる

実行する Visual Studio 拡張機能分析ごとに、異なる数の指摘が表示されます。

回避策: この指摘を解決するには、デフォルトの kwcheck エンジンを使用します。

Visual Studio 2019 で「One or more extensions were loaded using deprecated APIs (廃止された API を使用して 1 つ以上の拡張機能がロードされました)」という警告メッセージが表示される

Visual Studio 2019 では、廃止された API に関する警告メッセージが表示されることがあります。[廃止された API の使用を許可しない] の推奨オプションを選択すると、Klocwork プラグインは無効になり、VS の Klocwork ツールにアクセスできなくなります。

回避策: 「Don't show this message for current extensions (現在の拡張機能でこのメッセージを表示しない)」オプションを選択すると、この警告を安全に無視し、Klocwork プラグインの使用を続行します。

Visual Studio 2019 で「Visual Studio stopped responding for X seconds. (Visual Studio は X 秒間応答を停止しました。)」の警告メッセージが表示される

Visual Studio 2019 では、Klocwork プラグインの使用に関連するパフォーマンスの低下を警告するメッセージが表示されることがあります。[この拡張機能を無効にする] オプションを選択すると、Klocwork プラグインは無効になり、VS の Klocwork ツールにアクセスできなくなります。

回避策: 「Don't show this message for current extensions (現在の拡張機能でこのメッセージを表示しない)」オプションを選択すると、この警告を安全に無視し、Klocwork プラグインの使用を続行します。

Visual Studio 2015 が C++ の解析を妨げている

Windows Server 2012 で実行している Visual Studio 2015 に関する既知の問題により、Visual Studio 向け Klocwork 拡張機能が C++ プロジェクトを解析できなくなります。

回避策: ビルド構成のバージョンを x86 に変更するか、解析モードをクラシックに切り替えます。 クラシックモードに切り替えるには、[ツール] > [拡張機能と更新プログラム] > [Klocwork] > [オプション] に移動し、[解析] タブを選択します。[解析モード] で、[クラシックモードを使用する] チェックボックスを選択します。

Visual Studio 拡張機能が無効になっている場合がある

Visual Studio 向け Klocwork 拡張機能を Visual Studio 2015 にインストールすると、最初は拡張機能が無効になっている場合があります。 その場合は、[ツール] > [拡張機能と更新プログラム] に移動し、[インストール済み] を選択します。[Visual Studio 向け Klocwork 拡張機能] を選択します。Visual Studio を再起動する必要がある場合があります。

Visual Studio ハング

Klocwork 開発チームは、Visual Studio テクニカルサポートチームと協力し、さまざまな状況でユーザーアクションが Visual Studio のハングを引き起こす場合のサポート要求を継続的に調査しています。これらの Visual Studio ハングは、Klocwork VS Extension がインストールされているかどうかを問わず発生します。たとえば、Visual Studio のタブで現在開かれていないソースファイルで定義されている関数定義に移動すると、そのファイルは Visual Studio によって一時的なタブで開かれます。この一時的なタブが開いているときに、続いて別の関数の定義に移動すると、Visual Studio がハングします。

アップグレードした後の Visual Studio での 'kwcc' エラー

2020.1 より前に、kwdeploy を使用して MISRA チェッカーをプロジェクトに展開し、現在 %USERPROFILE%\.klocwork\plugins フォルダーに misra.xml ファイルが存在する場合、次のようなエラーが表示されることがあります。

kwcc: Error: C:\Users\username\.klocwork\plugins\misra.xml:5783: 
Trying to describe error 'MISRA.STDLIB.ILLEGAL_WRITE.2012_AMD1' several times. 
Repeated descriptions are ignored

回避策: この指摘を修正するには、%USERPROFILE%\.klocwork\plugins フォルダーにある misra.xml ファイルを削除してからアップグレードを実行してください。

Klocwork Community チェッカーのヘルプに Visual Studio から直接アクセスできない

Community チェッカーを右クリックし、[チェッカードキュメンテーションを表示] を選択してチェッカーのヘルプにアクセスしようとすると、「要求されたトピックがコンピューターに見つかりません」というエラーメッセージが表示されます。

回避策: ポータルを使用すれば、コミュニティチェッカーのオフラインヘルプを使用できます。オンラインヘルプも使用できます。

Microsoft Visual Studio 機能拡張の重要度別フィルターオプションでは C++ プロジェクトのカスタム重要度が表示されない場合があります

カスタム重要度を定義した C++ プロジェクトでは、重要度でフィルターをかけたリストに正しいアイテムが表示されない場合があります。リストにはデフォルトの重要度名が表示される可能性がありますが、C++ と C# の混合プロジェクトの場合には C# の重要度が表示されます。引き続きフィルターを使用することはできますが、指摘ツリーに表示される重要度名はリストで選択したアイテムと一致しない場合があります (フィルターが重要度番号別に適用されているためです)。

ハードコードされた IP アドレスを使用する場合、Klocwork サーバーオプションがプロジェクトを取得できません

Klocwork オプションメニューの Klocwork サーバーダイアログでハードコードされた IP アドレスを使用する場合、Klocwork extension for Visual Studio はプロジェクトのリストを取得できません。

回避策: IP アドレスではなくホスト名を使用します。これがオプションでない場合は、hosts ファイルに IP アドレスのエントリーを追加できます。

ライセンスホストボックスに無効な文字が含まれている場合、オプションダイアログは反応しません

ライセンスホストの詳細を入力し、無効な文字 (';' や '#' など) を入力すると、ダイアログボックスは赤くなり、[オプション] ダイアログ内の他のどの設定も変更できなくなります。

回避策: この指摘を解決するには、ライセンスホストボックスの内容を有効な文字 (アルファベットの任意の文字) に置き換えます。

タブがスペースに変換されない限り、欠陥列が正しく更新されない

Tab キーを押してコードをインデントすると、タブ文字または設定可能な数のスペースが挿入されます。 Klocwork 拡張機能が欠陥が発生した列番号を表示する場合、タブは 1 スペースとしてカウントされます。タブのあるソースファイルでタブをスペースに変換するように Visual Studio で設定していない場合、Tab キーを押したときに、欠陥の列情報が正しくない可能性があります。

回避策: Klocwork が欠陥が発生した場所を表示するときに正しい列数をカウントするようにするには、[ツール] > [オプション] > [テキストエディター] > [すべての言語] > [タブ] に移動し、[スペースの挿入] を選択します。

Klocwork Visual Studio プラグインのインストール時に Visual Studio 2015 が検出されない

Visual Studio 2015 に Klocwork Visual Studio プラグインのインストールを試みて、上位バージョンの Visual Studio (2017 や 2019 など) がすでにインストール済みの場合、VSIX インストーラーは Visual Studio 2015 のインストールを自動的に検出しません。「この拡張機能は、現在インストールされている製品にはインストールできません」というエラーが表示されます。

回避策: Klocwork プラグインを Visual Studio 2015 にインストールするには、コマンドプロンプトから互換性のある VSIX インストーラーを実行します。
<path-to-Visual-Studio-2015-compatible-VSIX-Installer> \VSIXInstaller.exe kw-vsplugin.win64.vsix

"C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\VSIXInstaller.exe" 
C:\KW_Installer\23.1\kw-desktop-tools.23.1.0.61.win64\kw-vsplugin.win64.vsix

VS Code に関する制限事項

開いているファイルにフォーカスが置かれていない場合、単一ファイル解析が失敗し、「解析対象のファイルが見つかりません」というメッセージが出力される

開いているファイルを選択せずに VS Code で単一ファイル解析を実行すると、「解析対象のファイルが見つかりません」というエラーが表示されます。

回避策: 解析対象のファイルにフォーカスが置かれていることを確認してください。

2024.1 バージョンの Perforce Static Analysis 拡張機能および kwcheck では、デフォルトでストリームの欠陥が表示されない

VS Code 2024.1 用の Perforce Static Analysis 拡張機能を使用しており、それが kwcheck の 2024.1 バージョンをポイントしている場合、デフォルトではストリームの欠陥が表示されません。

回避策: プロジェクトディレクトリから次のコマンドを実行します。

kwcheck set show_streams_as_system=true

ビルドコマンドにビルドスペックの場所は追加しないでください。'ビルドスペックの場所' 設定から自動的に収集されます。

'ビルドスペックの自動更新' オプションを使用している場合は、'ビルドスペック生成コマンド' にビルドスペックの場所 (-o <location>) を指定しないでください。

回避策: 場所は、ビルドスペックの場所設定で指定します。

ビルドスペック生成コマンドには、一重引用符で囲まれた引数を指定できない

引用符で囲まれたパラメーターが必要な場合は、(コマンドプロンプト/ターミナルと同じように) 二重引用符を使用してください。

回避策: 引用符で囲まれたパラメーターには、必ず二重引用符を使用してください。

Klocwork Desktop の制限事項

以下のいずれの構成でも、解析がサポートされていません。

  • シンボリックリンクのあるプロジェクトが "no-resolve" という属性を持たない外部ビルドスペックで構成されている場合。プロジェクトがシンボリックリンクを使用しており、ユーザーが外部ビルドスペックを用いてプロジェクトを構成する必要があり、外部ビルドスペックが kwinject に渡された "no-resolve" オプションで作成されなければならない場合。
  • シンボリックリンクを含むプロジェクトが Eclipse CDT ツールチェーンを使用するように構成されている場合。Eclipse プラグインがユーザーに "no-resolve" オプションの設定を許可しない場合。
  • プロジェクトがディレクトリへのシンボリックリンクを含む場合。プラグインがファイルのみへのシンボリックリンクをサポートしている場合。

IntelliJ IDEA プラグインの制限事項

名前が長いプロジェクトまたはストリームに接続するのが困難

パスまたは名前が長いプロジェクトまたはストリームに接続する場合、Klocwork プロジェクトのドロップダウンリストが狭すぎて、パスと名前全体を表示できないことがあるため、プロジェクトまたはストリームのフルパスがわからない場合があります。

回避策: この問題は、次の手順を行うことで修正できます。
  1. Klocwork がインストールされた IDE を開いてから、プロジェクトを開きます。そうすることで、プロジェクト内に .idea フォルダーが確実に生成されます。
  2. IDE を閉じます。
  3. プロジェクトの .idea フォルダーで、'misc.xml' ファイルを編集します。value パラメーターにプロジェクト/ストリームの名前を追加することで、次の行を編集します (ストリームの場合、スラッシュが含まれた名前が表示されます)。
    <option name="kwProject" value="project-name/stream-name" />
  4. IDE を開きます。Klocwork 設定を開くと、正しいプロジェクトまたはストリームに接続されていることを確認できます。

CLion プラグインの制限事項

CLion を再起動すると、「プラグイン 'com.intellij.modules.cidr.lang' をインストールする必要があります」という警告が表示される

CLion IDE のバージョン 2024.1 または 2024.2 を再起動すると、「プラグイン 'com.intellij.modules.cidr.lang' をインストールする必要があります」という警告が表示されます。

回避策:

デフォルトでは、Klocwork CLion プラグインは以下の場所にインストールされます。

  • Windows: %appdata%\Roaming\JetBrains\CLion2024.x\plugins\klocworkclionplugin
  • Linux: ~/.local/share/JetBrains/CLion2024.x/plugins/klocworkclionplugin
  1. Klocworkclionplugin\lib で、klocworkclionplugin-<kw version>.jar アーカイブを開きます (たとえば、7-Zip を使用します)。
  2. 7-Zip から、META-INF\plugin.xml ファイルをテキストエディターで開きます。
  3. META-INF\plugin.xml ファイルを更新するため、行 <depends>com.intellij.modules.cidr.lang</depends><depends optional="true">com.intellij.modules.cidr.lang</depends> に置き換えてファイルを保存します。
  4. 7-Zip を終了します。
  5. CLion IDE を再起動します。警告が表示されなくなります。

古いバージョンの Klocwork Desktop ツールを使用している接続プロジェクトで CLion プラグインがクラッシュする

Klocwork Clion プラグインは、バージョン 2023.4 以上のデスクトップツールとのみ互換性があります。

Klocwork extensibility の制限事項

kwinject 使用時のプロジェクトのビルド監視の遅延 (Windows)

kwinject を使用して Windows でプロジェクトを同期すると、ネイティブビルドを実行する場合よりも大幅に遅くなります。

回避策:

  • Klocwork 2024.3 以前の場合: kwinject を実行する前に、以下のコマンドを実行して環境変数を設定してください。
    _NO_DEBUG_HEAP=1
  • Klocwork 2024.4 以降の場合: デフォルトで、この最適化は Windows で有効になっています。Windows での kwinject の使用時に問題が発生した場合は、環境変数を設定することができます。
    KWTRACE_DISABLE_FAST_PIPE=1

C/C++ パス チェッカー コンパイル makefile の互換性

Unix システムで kwcreatechecker が生成する makefile には、チェッカーをビルドするための GNU make が必要です。Windows では、kwcreatechecker が生成する makefile にはチェッカーをビルドするための nmake が必要です。

オフラインヘルプで検索するときに、カスタムチェッカーヘルプが見つからない

2022.1 時点で、Validate ポータルからアクセスしたオフラインドキュメントからは、カスタムチェッカーヘルプを検索できません。

回避策: 代わりに、Validate ポータルで、[構成] タブからカスタムチェッカーヘルプを検索できます。プロジェクトから、[構成] をクリックし、分類基準を選択してからチェッカーリストの上にある検索ボックスを使用します。カスタムチェッカーのヘルプが右側のペインに表示されます。

一部の IDE ではカスタムチェッカーヘルプを表示できない

Eclipse、Klocwork Desktop、IntelliJ IDEA、および Android Studio の場合、カスタムチェッカーヘルプは表示されません。

回避策: ポータルで、[構成] タブからそれにアクセスすることで、カスタムチェッカーヘルプを表示できます。プロジェクトから、[構成] をクリックし、分類基準を選択してからチェッカーリストの上にある検索ボックスを使用します。カスタムチェッカーのヘルプが右側のペインに表示されます。