EN JP CN

Kwcheck

Kwcheck

kwcheck は、IDE プラグイン形式では Klocwork によってサポートされていない IDE およびテキストエディターを使用する、C/C++、C# および Java デベロッパー向けのデスクトップ解析ツールです。方法については、kwcheck for C/C++ をお使いになる前におよびkwcheck for Java をお使いになる前にを参照してください。

一般的な使用方法

サブコマンドは常に、コマンドラインの kwcheck コマンドの直後に置きます。

kwcheck <subcommand> [<options>]

kwcheck サブコマンドで引数ファイルを使用できます。引数ファイルを作成して、コマンドライン引数を指定することができます。各引数は、独立した行に指定する必要があります。(引数ファイルにマルチバイト文字が含まれる場合、ファイルは UTF-8 でエンコードされている必要があります。))使用方法は以下のとおりです。

kwcheck <subcommand> @<arguments-file> 

kwcheck create

デスクトッププロジェクト用のローカルプロジェクトおよびプロジェクト設定ディレクトリを作成します。新しく作成されるプロジェクトには、解析されるまで、またはサーバープロジェクトと同期化されるまで、データは含まれません。

使用方法:connected desktop (コネクテッドデスクトップ)

kwcheck create --url http://<klocwork_server_host>:<klocwork_server_port>/<project> [-pd <local_project_dir>] [-sd <local_settings_dir>]

kwcheck create --url http://acme:8074/bigproject

使用方法:スタンドアロンデスクトップ

kwcheck create [--license-host <host_name> [--license-port <port_number>] [-pd <local_project_dir>] [-sd <local_settings_dir>]

詳細

デフォルトでは、ローカルプロジェクトおよび Klocwork プロジェクト設定ディレクトリは作業ディレクトリに作成され、.kwlp および .kwps の名前が付けられます。-pd -sd オプションを使用すると、これらのディレクトリに独自の名前と場所を指定することができます。ただし、デフォルトの名前と場所を使用すると、kwcheck リストで解析またはフィルターの範囲をプロジェクト全体ではなく現在のサブディレクトリに制限することができます。

  • .kwlp は、一時作業ファイルと build specification (ビルドスペック) ファイルを保存します。
  • .kwps は build specification template (ビルドスペックテンプレート) (該当する場合) と構成ファイルを保存します。
注: 解析の結果と設定を削除するには、.kwlp ディレクトリを削除し、kwcheck create を再度実行します。

オプション

名前短い名前説明
--build-spec <file>.out-bbuild specification (ビルドスペック) をローカルプロジェクトにインポートします。
--license-host <host_name> ライセンスサーバーのホスト名を指定します。--url が使用されている場合は、無視されます。
--license-port <port_number> ライセンスサーバーのポート番号を指定します。--url が使用されている場合は、無視されます。
--project-dir <dir>-pdデフォルト名 (.kwlp) と異なる場合は名前、ソースツリー外にある場合はその場所を指定します。
--settings-dir <dir>-sdプロジェクト設定ディレクトリの名前と場所を指定します。デフォルト:デフォルト:作業ディレクトリ内の .kwps です。
--url http://<klocwork_server_host>:<klocwork_server_port>/<server_project> プロジェクトの URL。この引数は、プロジェクトとプロジェクトが配置された Klocwork サーバーを識別します。Klocwork サーバーのセキュア接続が構成されている場合は、https:// を使用します。

kwcheck disable

指定されたチェッカーを無効にします。ローカル構成を変更するパーミッションが必要です。チェッカーを有効または無効にすると、ユーザープロファイル (.pconf.xml) というファイルが作成され、デフォルト以外の設定がそれに保存されます。kwcheck export でこのファイルをエクスポートして、他のユーザーと共有することができます。Configuration Editor でチェッカーを無効にすることもできます。

使用方法

kwcheck disable <issue_code_1> [<issue_code_2>] [...]

kwcheck disable cl.mlk cwarn.signedbit

詳細

複数の指摘コードをスペースで区切ります。指摘コードでは大文字と小文字は区別されません。ヘッダー解析チェッカーを無効にしても、kwcheck とKlocwork Desktop には何の影響も及ぼさないことに注意してください。

オプション

名前短い名前説明
--project-dir <dir>-pdデフォルト名 (.kwlp) と異なる場合は名前、ソースツリー外にある場合はその場所を指定します。

kwcheck discard

指定された構成ファイルをプロジェクトから削除します。ローカル構成を変更するパーミッションが必要です。

使用方法

kwcheck discard [options] <config_file>

kwcheck discard user_metrics.mconf

詳細

削除できる構成ファイルのタイプは、次のとおりです。

  • build specification (ビルドスペック) (buildspec.txt)
  • build specification template (ビルドスペックテンプレート) (.tpl)
  • ユーザープロファイル (.pconf.xml)
  • knowledge base (ナレッジベース) (.kb (C/C++ の場合) または .jkb (Java の場合))
  • メトリックしきい値 (.mconf)
  • マクロオーバーライドファイル (kw_override.h)
注: ユーザープロファイルが削除されると、Klocwork はデフォルトのチェッカー設定に戻ります。

オプション

名前短い名前説明
--project-dir <dir>-pdデフォルト名 (.kwlp) と異なる場合は名前、ソースツリー外にある場合はその場所を指定します。

kwcheck enable

指定されたチェッカーを有効にします。ローカル構成を変更するパーミッションが必要です。チェッカーを有効または無効にすると、ユーザープロファイル (.pconf.xml) というファイルが作成され、デフォルト以外の設定がそれに保存されます。kwcheck export でこのファイルをエクスポートして、他のユーザーと共有することができます。Configuration Editor でチェッカーを有効にすることもできます。

使用方法

kwcheck enable [options] <issue_code_1> [issue_code_2][...]

kwcheck enable cl.assign.void cwarn.signedbit

詳細

複数の指摘コードをスペースで区切ります。指摘コードでは大文字と小文字は区別されません。ヘッダー解析チェッカーを無効にしても、kwcheck とKlocwork Desktop には何の影響も及ぼさないことに注意してください。

オプション

名前短い名前説明
--project-dir <dir>-pdデフォルト名 (.kwlp) と異なる場合は名前、ソースツリー外にある場合はその場所を指定します。

kwcheck export

指定された構成ファイルをプロジェクトからエクスポートし、他のユーザーと共有できるようにします。ローカル構成を変更するパーミッションが必要です。connected desktop (コネクテッドデスクトップ) を使用すると、構成設定はすべてサーバーからデスクトップにプッシュされます。ローカル構成を変更するパーミッションがある場合、ローカル設定をエクスポートして他のユーザーがそれをインポートできるようにすることができます。ローカル設定が優先されます。

使用方法

kwcheck export [options] <config_file>

kwcheck export user_metrics.mconf -o /shared/jlee_metrics.mconf

詳細

次の構成ファイルをエクスポートすることができます。

  • ユーザープロファイル (.pconf.)
  • knowledge base (ナレッジベース) (.kb (C/C++ の場合)、.jkb (Java の場合))
  • メトリックしきい値 (.mconf)
  • マクロオーバーライドファイル (kw_override.h)

オプション

名前短い名前説明
-o <file> 出力ファイルの場所と名前を指定します(デフォルト:現在のディレクトリと現在のファイル名)
--project-dir <dir>-pdデフォルト名 (.kwlp) と異なる場合は名前、ソースツリー外にある場合はその場所を指定します。

kwcheck import

指定された構成ファイルをローカルプロジェクトにインポートします。ローカル構成を変更するパーミッションが必要です。connected desktop (コネクテッドデスクトップ) を使用すると、構成設定はすべてサーバーからデスクトップにプッシュされます。ローカル構成を変更するパーミッションがある場合、ローカル設定をエクスポートして他のユーザーがそれをインポートできるようにすることができます。ローカル設定が優先されます。

使用方法

kwcheck import [options] <file>

kwcheck import /shared/jlee_metrics.mconf

詳細

knowledge base (ナレッジベース) を除き、デスクトッププロジェクトに含めることができるのは、次のファイルタイプについてそれぞれ 1 つずつだけです。

ファイルタイプデフォルトの拡張子
build specification (ビルドスペック).out
knowledge base (ナレッジベース).kb (C/C++ の場合)、.jkb (Java の場合)
マクロオーバーライドファイル.h
メトリックしきい値.mconf
ユーザープロファイル.pconf

拡張子がデフォルト以外のファイルをインポートするには、--type オプションを指定します。

オプション

名前短い名前説明
--project-dir <dir>-pdデフォルト名 (.kwlp) と異なる場合は名前、ソースツリー外にある場合はその場所を指定します。
--type <config_file_type>-t拡張子がデフォルト以外のファイルのタイプを指定します。
  • 使用できる引数は次のとおりです。buildspec または b
  • kb
  • jkb
  • override-file
  • mconf
  • pconf

kwcheck info

ローカルプロジェクト設定を表示します。

使用方法

kwcheck info [options] 

kwcheck info -pd new_project

詳細

表示される設定は、次のとおりです。

  • status.permission:status.permission:指摘ステータスを変更するときに使用できるステータス。*\:* は、報告された指摘のステータスを任意のステータスに変更または任意のステータスから変更できることを意味します。
  • klocwork.host:接続されたプロジェクトのみ。
  • klocwork.project:接続されたプロジェクトのみ。
  • license.host:すべてのプロジェクトについて、接続されているかどうか。
  • license.port:すべてのプロジェクトについて、接続されているかどうか。
  • useconf.permission:チェッカーの有効/無効の切り替えなど、ローカル構成を変更するパーミッションがあるかどうか。

オプション

名前短い名前説明
--project-dir <dir>-pdデフォルト名 (.kwlp) と異なる場合は名前、ソースツリー外にある場合はその場所を指定します。

kwcheck list

指摘リストを指摘番号、指摘コード、ステータス、重要度、およびファイルでフィルタリングします。

使用方法

kwcheck list [options] [<file_1>] [<file_2>] [...] 

kwcheck list --id 4-9,16-22,77 --issue abr,abv.stack foo.c foo2.cpp

詳細

ファイルはスペースで区切る必要があるのに対し、ステータスなどのフィルタリングオプションは、カンマで区切る必要があります。重要度または指摘 ID の範囲は、ハイフンで表現します。

デフォルトでは、kwcheck は次のような指摘を表示します。

  • 検知 (Analyze) と要修正 (Fix) ステータスにある
  • すべての重要度の指摘
  • プロジェクトまたはサブディレクトリのすべてのソースファイル内の、
  • 原点が「ローカル」

.kwlp があるディレクトリから kwcheck list を実行すると、プロジェクト全体で検出された指摘が一覧表示されます。ローカルプロジェクトディレクトリが、デフォルト名 (.kwlp) を持ち、ソースツリーにある場合、プロジェクト全体ではなく現在のサブディレクトリ内の指摘をフィルタリングすることができます。目的のサブディレクトリから kwcheck list を実行するだけです。所定ディレクトリ外のヘッダーファイル内の指摘は、一覧表示されません。

フィルターオプション

名前短い名前説明
--id <local_issue_ID> 指摘を指摘 ID 別にリストします。
--id-system <system_ID> 指摘をシステム ID 別にリストします。
--issue <issue_code_1>[,<issue_code_2>...] 指定された指摘コードを列挙します。指摘コードでは大文字と小文字は区別されません。指摘コードの完全なリストについては、C および C++ チェッカーリファレンスまたは Java チェッカーリファレンスを参照してください。kwdtconfeditor を実行して、チェッカーとそのデフォルト設定のリストを表示することもできます。
--local-lローカルな指摘を表示します。デフォルト設定は、次のとおりです。
  • ローカルプロジェクトで検出された指摘だけを表示します。
  • 統合ビルド解析で検出された指摘は何も表示しません。
--no-local-Lローカルな指摘を表示しない。このオプションを --system オプションと組み合わせて使用して、システム指摘だけを列挙します。
--no-system-Yシステム指摘を表示しない。これがデフォルト設定です (--local と組み合わせます)。
--severity <severity_number> 指定重要度の指摘を列挙します。重要度は、1 ~ 4 の値であり、1 が最も重大な指摘、4 が最も軽い指摘を表します。複数の重要度はスペースで区切るか、ハイフンで範囲を指定します:--severity 1,3-4
--status <status_name>|all-s指定ステータスの検出された指摘を列挙します。スペースを含むステータスは、次のように二重引用符で囲みます。"次のリリースで要修正 (Fix in Next Release)"。ステータスのリストを得るには、kwcheck list-statuses を使用します。
--system-yシステム指摘を表示します。kwcheck list --system は、デフォルトで表示されるローカルな指摘以外にシステム指摘も表示します。kwcheck list --system --no-local は、システム指摘のみを表示します。
--taxonomy <taxonomy_name> 

検出された指摘を分類基準名別に列挙します。たとえば、次のようになります。

たとえば、次のようになります。kwcheck list --taxonomy MISRA C

これにより表示されるのは、MISRA C 分類基準内のチェッカーによって検出された指摘だけです。

その他のオプション

名前短い名前説明
-F <format> 指摘リストの形式を制御します。可能な形式は次のとおりです。
  • detailed - 検出された指摘すべてに関するトレースバックを表示します。
  • scriptable - セミコロンで区切った形式で出力します。
  • short - 指摘番号と絶対パス名なしで出力を表示します。
  • xml - XML 形式で出力します。
詳細については、kwcheck 出力リファレンスを参照してください。
--license-host <host_name> ライセンスサーバーのホスト名を指定します。
--license-port <port_number> ライセンスサーバーのポート番号を指定します。
--project-dir <dir>-pdデフォルト名 (.kwlp) と異なる場合は名前、ソースツリー外にある場合はその場所を指定します。
--report <output_file>[,<output_file_2>...] 報告された指摘 (指定フィルターオプションに一致するものがある場合) のリストを指定ファイルにエクスポートします。サポートされるのは、.txt ファイルだけです。-F を使用して、出力に含める詳細のレベルを指定します。例:kwcheck list -F detailed --report /space/jlee/myreport.txt

kwcheck list-conf

ローカルプロジェクトで使用される構成ファイルをリストします。

使用方法

kwcheck list-conf

kwcheck list-conf -pd my_project

説明

サポートされている構成ファイル:

  • build specification (ビルドスペック) (buildspec.txt)
  • build specification template (ビルドスペックテンプレート) (.tpl)
  • ユーザープロファイル (.pconf.xml)
  • knowledge base (ナレッジベース) (.kb (C/C++ の場合) または .jkb (Java の場合))
  • メトリックしきい値 (.mconf)
  • マクロオーバーライドファイル (kw_override.h)

オプション

名前短い名前説明
--project-dir <dir>-pdデフォルト名 (.kwlp) と異なる場合は名前、ソースツリー外にある場合はその場所を指定します。

kwcheck list-projects

Klocwork サーバー上のプロジェクトをリストします。

使用方法

kwcheck list-projects

kwcheck list-projects --url http://server1.acme.com:8080

オプション

名前説明
--url http(s)://<klocwork_server_host>:<klocwork_server_port>/Klocwork サーバー用 URL。Klocwork サーバーのセキュア接続が構成されている場合は、https:// を使用します。

kwcheck list-statuses

検出された指摘が取り得るステータスをリストします。

使用方法

kwcheck list-statuses 

kwcheck list-vars

kwcheck set-var を使用して設定された build specification template (ビルドスペックテンプレート) 内の変数をリストします。

使用方法

kwcheck list-vars [options]

オプション

名前短い名前説明
--project-dir <dir>-pdデフォルト名 (.kwlp) と異なる場合は名前、ソースツリー外にある場合はその場所を指定します。

kwcheck remove-var

build specification template (ビルドスペックテンプレート) に対して設定された変数を削除します。

使用方法

kwcheck remove-var [options] <var1> [var2] [...]

オプション

名前短い名前説明
--project-dir <dir>-pdデフォルト名 (.kwlp) と異なる場合は名前、ソースツリー外にある場合はその場所を指定します。

kwcheck run

プロジェクト、サブディレクトリ、またはファイル上で解析を実行します。

使用方法

kwcheck run [options]

kwcheck run --issue ABR,MLK.MUST --severity 1-3 -F detailed --report project.txt foo.c foo2.cpp

詳細

ファイルはスペースで区切る必要があるのに対し、ステータスなどのフィルタリングオプションは、カンマで区切る必要があります。重要度または指摘 ID の範囲は、ハイフンで表現します。.kwlp があるディレクトリから kwcheck run を実行すると、プロジェクトのソースファイルすべてが解析されます。C/C++ プロジェクトの場合、ローカルプロジェクトディレクトリが、デフォルト名 (.kwlp) を持ち、ソースツリーにある場合、解析のコンテキストを現在のサブディレクトリに制限することができます。そのサブディレクトリ (および子ディレクトリ) にあるファイルが解析されます。Java プロジェクトの場合、個別のファイルを解析する Klocwork は推奨できません。これは、解析の範囲が制限されているため結果が不正確になることがあるからです。

オプション

名前短い名前説明
--build-spec <file>.out-bbuild specification (ビルドスペック) をローカルプロジェクトにインポートします。
注: kwshell ユーザーおよび build specification template (ビルドスペックテンプレート) ユーザー向けではありません。
-F <format> 指摘リストの形式を制御します。可能な形式は次のとおりです。
  • detailed - 検出された指摘すべてに関するトレースバックを表示します。
  • scriptable - セミコロンで区切った形式で出力します。
  • short - 指摘番号と絶対パス名なしで出力を表示します。
  • xml - XML 形式で出力します。
詳細については、Kwcheck 出力リファレンスを参照してください。
--issue <issue_code_1>[,<issue_code_2>...] 指定された指摘コードを列挙します。指摘コードでは大文字と小文字は区別されません。指摘コードの完全なリストについては、C および C++ チェッカーリファレンスまたは Java チェッカーリファレンスを参照してください。kwdtconfeditor を実行して、チェッカーとそのデフォルト設定のリストを表示することもできます。
--jobs-num <int> | auto-j並列コンパイルと実行する指摘検出プロセスの最大数を指定します。次のいずれかを指定します。
  • 1 ~ 32 の整数
  • 自動モードに設定するには auto。このモードでは、コンパイルジョブの数は使用できるプロセッサーコアの数 + 1 に等しくなります。

    1 台のマシン上の並列解析の場合、プロセッサーコアの数 + 1 を指定するよう推奨されます。この数を超えると、パフォーマンスは低下します。

--license-host <host_name> ライセンスサーバーのホスト名を指定します。
注: 指定ホスト名が使用され、保存されます。ホスト名が変更された場合、kwcheck set を使用してください。
--license-port <port_number> ライセンスサーバーのポート番号を指定します。
注: 指定ポート番号が使用され、保存されます。ポート番号が変更された場合、kwcheck set を使用してください。
--local-lローカルな指摘を表示します。デフォルト設定は、次のとおりです。
  • ローカルプロジェクトで検出された指摘だけを表示します。
  • 統合ビルド解析で検出された指摘は何も表示しません。
--no-local-Lローカルな指摘を表示しない。このオプションを --system オプションと組み合わせて使用して、システム指摘だけを列挙します。
--no-system-Yシステム指摘を表示しない。これがデフォルト設定です (--local と組み合わせます)。
--project-dir <dir>-pdデフォルト名 (.kwlp) と異なる場合は名前、ソースツリー外にある場合はその場所を指定します。
--rebuild-rプロジェクト上で完全な再解析を実行できるよう、増分解析をオーバーライドします。
--report <output-file> 指摘出力ファイルを指定します。
--severity <severity_number> 指定重要度の指摘を列挙します。重要度は、1 ~ 4 の値であり、1 が最も重大な指摘、4 が最も軽い指摘を表します。複数の重要度はスペースで区切るか、ハイフンで範囲を指定します:--severity 1,3-4
--status <status>-s指定ステータスの検出された指摘を列挙します。スペースを含むステータスは、次のように二重引用符で囲みます。"次のリリースで要修正 (Fix in Next Release)"。ステータスのリストを得るには、kwcheck list-statuses を使用します。
--system-yシステム指摘を表示します。kwcheck run --system は、デフォルトで表示されるローカルな指摘以外にシステム指摘も表示します。kwcheck run --system --no-local は、システム指摘のみを表示します。
--taxonomy <taxonomy_name> 

検出された指摘を分類基準名別に列挙します。たとえば、次のようになります。

たとえば、次のようになります。kwcheck list --taxonomy MISRA C

これにより表示されるのは、MISRA C 分類基準内のチェッカーによって検出された指摘だけです。

kwcheck set

ローカルプロジェクト設定を変更します。

使用方法

kwcheck set [options] <property_name>=<property_value> [...]

kwcheck set klocwork.host=acmedev klocwork.port=1108

説明

取り得るプロパティ/値ペア:

プロパティ名プロパティ値説明
klocwork.host=<klocwork_server_host>デフォルト:localhost
klocwork.port=<klocwork_server_port>デフォルト:8080
klocwork.project=<server_project_name>以下のことが可能です。
  • スタンドアロンデスクトップを connected desktop (コネクテッドデスクトップ) に変更します。
  • 異なるサーバープロジェクトへの接続
  • connected desktop (コネクテッドデスクトップ) をスタンドアロンデスクトップに変更します。
klocwork.ssl=0 または false。1 または true。Klocwork サーバーセキュア接続が構成されている場合は、このプロパティを 1 または true に設定してください。
license.host=<license_server_host>デフォルト:localhost
license.port=<license_server_port>デフォルト:27000
source.encoding=<encoding>プロジェクトで使用するソースファイルのエンコードを指定します。デフォルトは、お使いのシステムのエンコーディングです。許容される値のリストを検索するには、kwconv--list オプションを使用します。詳細については、kwbuildproject--encoding オプションを参照してください。

オプション

名前短い名前説明
--project-dir <dir>-pdデフォルト名 (.kwlp) と異なる場合は名前、ソースツリー外にある場合はその場所を指定します。

kwcheck set-status

指摘ステータスを変更し、コメントを追加します。

使用方法

kwcheck set-status [options] <issue_ID> [<issue_ID> <issue_ID>-<issue_ID> [...]

kwcheck set-status 22 7 30-32 --status fix -c "top priority"

説明

複数の指摘 ID はスペースで区切るか、ハイフンで範囲を表現します。

オプション

名前短い名前説明
--comment <text>-cコメントの追加
--license-host <host> ライセンスサーバーのホスト名を指定します。
--license-port <port> ライセンスサーバーのポート番号を指定します。
--project-dir <dir>-pdデフォルト名 (.kwlp) と異なる場合は名前、ソースツリー外にある場合はその場所を指定します。
--status <status>-s割り当てるステータスを指定します。スペースを含むステータスは、次のように二重引用符で囲みます。"次のリリースで要修正 (Fix in Next Release)"。ステータスをすべて一覧表示するには、kwcheck list-statuses を使用します。

kwcheck set-var

build specification template (ビルドスペックテンプレート) 内の変数をローカルプロジェクトのローカルパスにマッピングします。1 つ以上の変数を定義する必要があることを示すエラーメッセージが表示されたら、kwcheck set-var を使用して変数をマッピングするだけで十分です。

使用方法

kwcheck set-var [options] <var1>=<pathname> [<var2>=<pathname>] [...]

kwcheck set-var SCROOT=/builds/nightly/foosystem

オプション

名前短い名前説明
--project-dir <dir>-pdデフォルト名 (.kwlp) と異なる場合は名前、ソースツリー外にある場合はその場所を指定します。

kwcheck sync

結果とステータス変更をサーバープロジェクトに送信し、サーバープロジェクト解析結果、ステータス変更、および構成設定をデスクトッププロジェクトに取り込みます。

使用方法

kwcheck sync

kwcheck sync foo.c

説明

Klocwork サーバー上の connected desktop (コネクテッドデスクトップ) とプロジェクトの間で、同期が自動的に行われます。しかし、kwcheck sync では手動で同期することができます。

オプション

名前短い名前説明
--build-spec-bbuild specification (ビルドスペック) をローカルプロジェクトにインポートします (kwshell ユーザーおよび build specification template (ビルドスペックテンプレート) ユーザー向けではありません)。
--project-dir <dir>-pdデフォルト名 (.kwlp) と異なる場合は名前、ソースツリー外にある場合はその場所を指定します。