これは、clang static AnalyzerおよびClang Tidy Analyzersによって検出されたバグレポートを示すVSCODE用のC/C ++コード分析プラグインです。CodeCheckerをバックエンドとして使用します。

PATH環境変数に追加します。compile_commands.jsonファイルを生成します。F9 / Shift-F9デフォルトで) 


CodeCheCheckerは、しばしばcompile_commands.jsonと呼ばれる生成されたコンピレーションデータベースを読み取り、それに基づいて特定の分析を実行することで機能します。
CMakeは、コンピレーションデータベースを生成するためのサポートが組み込まれています。環境変数CMAKE_EXPORT_COMPILE_COMMANDS=ONを設定し、コンパイルデータベースはビルドフォルダー内にある必要があります。 VSコードにCMake Tools拡張機能を使用している場合は、 Cmake > Build Environmentの下の拡張設定にこのフラグを追加できます。
makeおよびその他のビルドシステムには、コンパイルデータベースを生成するための組み込みサポートはありませんが、CodeCheckerはビルドコマンドに基づいて生成することができます。 1つを生成するには、コマンドCodeChecker log -b "[full build command]" -o .codechecker/compile_commands.jsonを使用できます。
プロセスを自動化するために、拡張機能はCodeChecker logコマンドを自動的に実行する方法を提供します。最初に、拡張設定でCodeChecker > Executor > Log build commandを設定し、VSコードタスクまたはVSコードコマンドCodeChecker: Run CodeChecker Log分析を実行します。 CodeChecker: Preview CodeChecker log in terminalを実行して、CodeCheckerに渡されたパラメーターをより細かく制御することもできます。
拡張機能は、CodeCheckerバージョン6.18.2以降を使用します。インストールパスが異なる場合、またはCodeCheckerがPATH環境変数内にない場合、 Preferences > Settings > Extensions > CodeChecker > Executable pathの下で手動で設定できます。
この拡張機能は、ファイルを保存するとき、またはCodeChecker: Analyze 。 CodeCheckerの通知のキャンセルボタンをクリックすると、分析を停止できます。部分的な結果は自動的に保存されます。
分析は完全に構成可能であり、結果のCodeCheckerコマンドラインをCodeChecker: Show full command lineコマンド(サポートされている引数の場合、 CodeChecker analyze --helpを実行)でプレビューできます。現在のワークスペースの設定は、設定の[ワークスペース]タブで設定できます。保存に関する自動分析も設定できます。
設定オプションに関する詳細情報は、設定の下にあります。
拡張機能は次のコマンドを提供します。
| 指示 | 説明 |
|---|---|
CodeChecker: Analyze current file | CodeCheckerを使用して現在開かれているソースファイルを分析します。 CodeCheckerのサイドパネルのRe-analyze current fileボタンをクリックして呼び出すこともできます。Run On Saveがプラグインの設定でオフになった場合に便利です。 |
CodeChecker: Analyze selected files... | CodeCheckerを使用して、ユーザーが選択したファイルを分析します。複数のファイルを入力として受け入れます。 |
CodeChecker: Analyze entire project | CodeCheckerを使用してプロジェクト全体を分析します。 CodeCheckerのサイドパネルの[ Re-analyze entire projectをクリックすると、呼び出すこともできます。警告:完全な分析には数分、または大規模なプロジェクトで数時間かかる場合があります。 |
CodeChecker: Stop running CodeChecker instance | 現在実行中の分析を停止します。部分的な結果が保存され、更新されます。 |
CodeChecker: Run CodeChecker log | 現在のプロジェクトを構築することにより、コンパイルデータベースを更新します。カスタムユーザー指定のビルドコマンドを備えたバリアントも利用できます。 |
CodeChecker: Preview CodeChecker log in terminal | 現在のCodeCheCheckerログコマンドは、新しい端末ウィンドウに貼り付けられ、実行する前に編集できます。 |
CodeChecker: Show database setup dialog | ダイアログを表示して、既存のコンパイルデータベースへのパスを選択するか、新しいコンパイルデータベースを作成します。 |
CodeChecker: Next reproduction step 、CodeChecker: Previous reproduction step | 表示されている繁殖パスのステップの間を移動します。また、CodeCheckerのサイドパネルを介してレポートのステップに直接ナビゲートすることもできます。 デフォルトのキービンド:それぞれ Ctrl-F7 、 Ctrl-Shift-F7 。 |
CodeChecker: Show full CodeChecker analyze command line | ファイルの分析に使用される完全なCodeCheckerコマンドラインを示しています。 実行する前にアナライザーのオプションを確認する場合、または分析を手動で実行する場合に役立ちます。 |
CodeChecker: Show Output | 編集者にCodeCheckerの出力に焦点を当てます。プラグインのログと以前のCodeCheckerの実行の出力は、ここに表示されます。 |
CodeChecker: Reload metadata | CodeCheckerのmetadata.jsonファイルをリロードします。 CodeCheckerのサイドパネルのReload CodeChecker metadataボタンをクリックして呼び出すこともできます。 |
分析コマンドもタスク形式で利用できます。
| タスク | 同等のコマンド |
|---|---|
{ type: "CodeChecker", taskType: "currentFile" } | CodeChecker: Analyze current file |
{ type: "CodeChecker", taskType: "selectedFiles", selectedFiles: [] } | CodeChecker: Analyze selected files...選択したファイルは、フルパスを使用して、 selectedFilesアレイにリストされています。 |
{ type: "CodeChecker", taskType: "project" } | CodeChecker: Analyze entire project |
{ type: "CodeChecker log" } | CodeChecker: Run CodeChecker log |
{ type: "CodeChecker log", customBuildCommand: "..." } | CodeChecker: Run CodeChecker log with custom build command |
CodeChecker関連のパスはシステム間で大きく異なるため、[設定]メニューからアクセス可能な次の設定が提供されます。
| 名前 | 説明 |
|---|---|
| CodeChecker> BackEnd>出力フォルダー (デフォルト: ${workspaceFolder}/.codechecker ) | CodeChecker分析ファイルが保存される出力フォルダー。 |
| CodeChecker> BackEnd>コンパイルデータベースパス (デフォルト:(空) ) | カスタムビルドシステムの場合、カスタムコンパイルデータベースへのパス。データベースのセットアップダイアログは、現在のワークスペースのみのパスを設定します。 CodeCheckerの出力フォルダーのデータベースを使用するか、マルチルートワークスペースにCodeCheckerのオートデテクションを使用するために空白のままにします。 |
| CodeChecker> Editor>カスタムバグの重大度 (デフォルト: null ) | 重大度に応じて、エディターにバグがどのように表示されるかを制御します。バグは、「エラー」、「警告」、「情報」、または「ヒント」として表示できます。デフォルトでは、「スタイル」の重大度を除くすべてがエラーとして表示されます。 { "UNSPECIFIED": "Warning", "LOW": "Warning" } |
| CodeChecker>編集者> [データベースの表示]ダイアログ (デフォルト: on ) | コンパイルデータベースなしでワークスペースを開くときにダイアログを制御します。 |
| CodeChecker>編集者> Codelensを有効にします (デフォルト: on ) | 編集者に繁殖パスを表示するためのCodelensを有効にします。 |
| CodeChecker> executor>通知を有効にします (デフォルト: on ) | CodeChecker関連のトースト通知を有効にします。 |
| CodeChecker> executor>実行可能パス (デフォルト: CodeChecker ) | CodeChecker実行可能ファイルへのパス。 PATH環境変数の実行可能ファイル、または1つへの絶対パスにすることができます。 |
| CodeChecker> executor>分析タイムアウト (デフォルト: 60 ) | CodeChecker Analyzeコマンドによって実行される個々の分析ごとのタイムアウト(秒単位) - タイムアウトを無効にするために0に設定されています。 |
| CodeChecker> executor>スレッドカウント (デフォルト:(空) ) | CodeCheckerのスレッドカウント - すべてのスレッドを使用するには、空のままになります。 |
| CodeChecker> executor>引数 (デフォルト:(空) ) | CodeChecker analyze 。たとえば、CodeCheckerパスにconfigファイルを使用する場合は、 '-config <config.json>'。サポートされている引数については、 CodeChecker analyze --help 。注:結果のコマンドラインは、コマンド CodeChecker: Show full CodeChecker analyze command line 。 |
| CodeChecker> executor>ログビルドコマンド (デフォルト: make ) | コマンドまたはタスクを介してCodeChecker logを実行するときに使用されるデフォルトのビルドコマンド。 |
| CodeChecker> executor>ログ引数 (デフォルト:(空) ) | CodeChecker logへの追加の引数。注:結果のコマンドラインは、コマンド CodeChecker: Preview CodeChecker log in terminalプレビューできます。 |
| CodeChecker> executor> save on save (デフォルト: on ) | ファイルの保存時にCodeCheckerのオートランを制御します。 |
注:既にこの拡張機能をMarketplaceからインストールしている場合は、最初にアンインストールして、独自のビルドとの競合を防ぎます。
この拡張機能は、node.js(v12+)とyarn(v2+)を使用します。推奨される対コード拡張機能はESLINTおよびTYPESCRIPT+WEBPACK問題マッチャーです
拡張機能を構築して実行するには、次のことを実行します。
yarn install --immutable依存関係をインストールするためにcode . )で開くテストを実行するには、アクティブなデバッグ構成として拡張テストを選択するか、 yarn run testを実行します。
拡張機能は、CodeCheckerと同じライセンスであるApache 2.0ライセンスの下でリリースされます。