Main Content

Visual Studio Code での Polyspace as You Code の実行と結果のレビュー

Visual Studio Code エディターで保存するたびに Polyspace as You Code を実行するか、または必要に応じて実行するかを選択できます。解析はエディターで現在アクティブなファイルに対して実行されます。解析の実行後に、バグおよびコーディング規約ルール違反がソース コード マーカーとして表示されるか、または [Problems] パネルのリストで表示されます。

インストールの確認と拡張機能の開始

Visual Studio Code に Polyspace® as You Code 拡張機能がインストールされていることを確認するには、[Extensions] ビューの [INSTALLED] セクションを確認します。

このビューを開くには、Visual Studio Code で [View][Extensions] を選択するか、または左側のアクティビティ バーで Visual Studio Code extensions icon をクリックし、インストール済み拡張機能のリストで Polyspace as You Code を見つけます。

Polyspace as You Code 機能拡張を開始するには、エディターで C または C++ ファイルを開きます。C または C++ ファイルがエディターで開いていない場合、Visual Studio Code を開いても拡張機能は自動的に開始しません。拡張機能のステータスを確認するには、次のいずれかを行います。

インストール済みの拡張機能のリストで Polyspace as You Code を見つけます。

メモ

  • Visual Studio Code version 1.57.1 以降を使用している場合、制限モードでフォルダーを開くと、Polyspace as You Code 拡張機能は無効にされます。拡張機能を有効にするには、フォルダーを信頼できるフォルダーとしてマークします。Workspace Trust を参照してください。

  • Windows® システムでのパフォーマンス向上のため、解析するファイルをネットワーク ドライブに保存しないでください。

ステータス バーでの拡張機能情報の表示

拡張機能を開始すると、Polyspace as You Code により、構成のエラー、現在選択されているファイルに対して解析が実行中であるかどうかなど、拡張機能の状態に関する情報を示すアイコンがステータス バー (左下) に表示されます。

  • アイコンにカーソルを合わせると、追加情報を含むツールヒントが表示されます。

  • アイコン (該当する場合) をクリックして一般的な操作 (拡張機能設定を開く操作や [出力] ビューを表示する操作など) を実行します。

ステータス バーに表示される情報は、グローバル (VS Code global icon) であるか、または現在されているファイルに特有 (VS Code file icon) です。ファイル特有のステータス バー アイコンは、別のファイルを選択すると更新されます。

Polyspace as You Code ステータス バー アイコンを無効にしてから再度有効にするには、アイコンを右クリックし、メニューから適切なオプションを選択します。

追加の Polyspace ビューを開く

Polyspace as You Code 拡張機能により、構成の状態と解析対象として選択したファイルの状態に関する情報を示すさまざまなビューが、サイドバーに表示されます。左側のアクティビティ バーで Grey Polyspace icon をクリックすると、Polyspace ビューが表示または非表示になります。

[品質監視] ビュー

このビューには、解析対象として選択したすべてのファイル、各ファイルの解析のステータス、調査結果の数が表示されます。

このビューでは以下の操作も可能です。

  • ビューに追加したすべてのファイルのファイル単位の解析を開始する。

  • 特定のファイルのみの解析を開始する。

  • 特定のファイルのローカル ベースラインを作成する。

[Analysis Options: Add To Quality Monitoring On Save] 設定を使用して、ファイルの保存時 (Ctrl + S) にこのビューにファイルを追加する操作を有効または無効にします。Configure Analysis Behavior On Saveを参照してください。ファイルを手動で追加するには、エディター、[EXPLORER] ビュー、またはサイドバーの [SOURCE CONTROL] ビューでファイルを右クリックします。

[ヘッダー] ビュー

ファイルの解析時に、解析対象ファイルにインクルードされているヘッダー ファイルが、解析対象ファイルと同じフォルダーに含まれている場合は、Polyspace はこれらのヘッダー ファイルも解析します。Polyspace がヘッダー ファイルの調査結果を報告する場合、[品質監視] ビューの解析対象ファイルの横に [H] が表示されます。このビューで解析対象ファイルをクリックすると、[ヘッダー] ビューにヘッダー ファイルがリストされます。

Polyspace as You Code Headers view in VSCode

調査結果が含まれているヘッダー ファイルのみがリストされます。[ヘッダー] ビューでヘッダー ファイルをクリックすると、[PROBLEMS] パネルでその調査結果が開き、エディターで調査結果の検証が開始されます。

[結果の詳細] ビュー

[出力] ビューまたはエディターで調査結果を選択すると、その調査結果に関する追加情報がこのビューに表示されます。これには、トレースバックやベースラインからインポートされたレビュー情報などが含まれます (使用可能な場合)。

複数のコード行を選択すると、選択されたコードで報告されているすべての調査結果に関する追加の詳細情報がこのビューに表示されます。

調査結果のコンテキスト ヘルプを表示するには、open documentation icon をクリックします。

調査結果を選択するたびに [結果の詳細] ビューが更新され、選択された調査結果の情報が表示されます。このビューをロックして、ソース コードまたは [PROBLEMS] パネルで調査結果を閲覧するときにビューが更新されないようにするには、右上の Unlocked icon アイコンをクリックします。ビューのロックを解除するには、locked icon をクリックします。

[ベースライン] ビュー

現在のフィルター設定 (新しい結果のみの表示またはすべての結果の表示)、使用可能なローカル ベースライン、統合 (Access) ベースライン ダウンロードのステータスを表示します。ベースライン設定を構成している場合には、Polyspace Access サーバーの情報と、統合ベースラインとして使用するプロジェクトの情報が表示されます。Visual Studio Code で Polyspace as You Code の結果をベースラインとして設定するを参照してください。

VSCode baseline view

このビューでは以下の操作が可能です。

  • フィルター ボタンをクリックして、新しい結果のみをベースラインと比較するフィルタリングを有効化または無効化する。

  • すべて保存ボタンをクリックして、現在品質監視リストに含まれているすべてのファイルに対するローカル ベースラインを作成する。または、更新ボタンをクリックして、すべてのローカル ベースラインを更新する。

  • Download baseline をクリックして統合ベースラインをダウンロードする。

  • Open basline in Access UI をクリックして、Polyspace Access™ インターフェイスで統合ベースライン プロジェクトを開く。

  • settings icon をクリックしてベースライン設定を開く。

ベースラインの使用を無効化するには、baseline close button をクリックします。このアイコンは、ローカル ベースラインではベースラインの名前の横、統合ベースラインでは [Access ベースライン] の横にあります。

ご使用の Polyspace as Your Code のバージョンよりも古い Polyspace 製品を使用して、ベースライン実行の結果が生成された場合には、このビューに警告が表示されます。

[構成] ビュー

このビューには、[解析オプション] の現在の設定と、生成されたビルド オプション ファイルのステータスが表示されます (該当する場合)。たとえば、高速解析モードが表示されます。

このビューでは以下の操作が可能です。

解析の実行

保存時

既定では、Polyspace as You Code は保存時に現在のファイルを [品質監視] リストに追加して、このファイルを解析します。数秒以内にソース コードに解析結果が表示されます。エラーの場合は、ポップアップにエラー メッセージが表示されます。さらに詳しく診断するには、[View][Output] を選択します。[出力] ビューの右上のドロップダウンから [Polyspace as You Code] を選択します。

解析の実行後に、解析結果はソース コード マーカーとして表示されます (ソース コード トークンの下の波線)。エラーの位置は、スクロール バーに赤色のマークとしても表示されます。エラーの位置をクリックすると、対応するソース コードに移動します。

保存時の解析を無効にするには、次のようにします。

  1. Ctrl + , (コンマ) を押して設定を開き、設定の検索バーに polyspace.analysisOptions OnSave と入力します。

  2. [Analysis Of Files On Save] の設定を選択解除します。

結果が表示されない場合は、Troubleshoot Failed Analysis or Unexpected Results in Polyspace as You Codeを参照してください。

オンデマンド

Polyspace 解析を明示的に開始することもできます。解析を開始するには、次のいずれかを行います。

  • [EXPLORER] ビューでソース ファイルを右クリックするか、またはエディターでファイルのコンテンツ自体を右クリックして、[Polyspace 解析の実行] を選択する。

  • [品質監視] ビューの再生ボタンをクリックする。

  • ソース ファイルにカーソルを合わせて Ctrl + Shift + Alt + A を押す。

結果のレビュー

解析後、結果が 2 つの形式で表示されます。

  • ソース コード マーカー (ソース コード トークンの下の波線)。

    ソース コード トークンにカーソルを合わせると、結果の詳細が表示されます。

  • [PROBLEMS] パネルのリスト。

    このパネルを開くには、[View][Problems] を選択します。

    調査結果を選択すると、[結果の詳細] ビューで結果またはイベント トレースに関する追加の詳細情報を確認できます。

    このビューで open documentation icon をクリックすると、この調査結果のコンテキスト ヘルプが開きます。

Problems panel and result details view

欠陥またはコーディング ルール違反について提案される修正の適用

Polyspace からコード内の一般的な欠陥またはコーディング ルール違反が報告される場合、Polyspace as You Code 拡張機能により、これらの調査結果に適用できる 1 つ以上の修正が提案されます。

簡単な修正を適用するには、エディターまたは [Problems] パネルで調査結果を選択し、電球メニューで該当するオプションをクリックします。簡単な修正のオプションの形式は Fix checkerName: proposedFix です。ここで checkerName は選択されている欠陥チェッカーまたはコーディング ルールの名前、proposedFix は Polyspace がコードに適用する修正です。Polyspace によりコードが編集され、選択するオプションに応じて、問題または現在アクティブなファイルに出現するその問題のすべてのインスタンスが修正されます。提案される修正が複数ある場合は、使用可能なすべての修正がメニューに表示されます。

VSCode light bulb menu

以下の表に、Polyspace が修正を提案する一般的な欠陥およびコーディング ルール違反と、これらの問題を報告する Polyspace チェッカーを示します。

一般的な欠陥またはコーディング ルール違反問題を報告する Polyspace チェッカー
コンパイル時に constexpr 指定子が欠落していると評価される可能性がある関数。
値によってオブジェクトをキャストする std::any_cast の非効率な使用
std::string operator+() の非効率な使用
std::map または std::unordered_map のキーへの値の挿入または代入のための [] 演算子の非効率な使用 (C++ 17 以降のみ)
パラメーターの値渡しが計算量の多いコピーになる
未変更の、値で渡される、コピーの計算量が多いパラメーター
ローカル変数が const 参照からの計算量の多いコピーで作成された後、変更されない
const として宣言されていない未変更の変数
return ステートメントでの std::move への不必要な呼び出し
未使用のインクルード
未使用のパラメーターです
std::endl の使用

コード注釈を使用した結果の正当化

結果を修正しない場合は、結果を再度修正しなくても済むようにするため、コード注釈を結果に追加できます。特定の構文に従っている注釈の場合、以降の Polyspace as You Code 実行では注釈が読み取られ、対応する結果が表示されなくなります。

  • コード注釈を追加するには、結果が含まれているソース コード トークンの横にある電球アイコンをクリックして、[注釈付きで result_name を正当化] を選択します。注釈は結果と同じ行に入力されます。

  • 現在のファイルで同じ欠陥またはコーディング ルール違反の調査結果を一括で正当化するには、その調査結果のインスタンスを選択して、電球メニューから [すべての result_name を正当化する] オプションをクリックします。Polyspace により、コードでこの調査結果を含む各行に注釈が挿入されます。

  • レビュー情報をベースライン実行からインポートする場合に、ベースライン実行の当該結果に割り当てられているすべてのステータス、重大度、コメントを含めるには、[result_name にベースライン コメントの注釈を付ける] を選択します。インポートされたステータスが [調査予定][修正予定][その他] のいずれかに設定されている場合、注釈では結果は非表示になりません。

複数のコード行を選択すると、選択範囲内の各調査結果の注釈オプションが電球メニューに表示されます。

Polyspace as You Code により、C ファイルの場合はコード注釈が "/* */" で囲まれたコメントとして挿入されるか、C++ ファイルの場合は "//" が接頭辞として追加されます (C++ スタイル)。C ファイルのコメント形式は MISRA C:2004 Rule 2.2 に準拠します。

正当化された結果は [PROBLEMS] パネルから削除され、以降の解析では表示されません。

Click light bulb icon to justify result with annotation

参考:

結果の状況依存ヘルプの表示

結果の状況依存ヘルプ ページを表示すると、特定の結果タイプに関する詳細情報を確認できます。

  • 現在選択されている調査結果の状況依存ヘルプを開くには、[結果の詳細] ビューで open documentation icon をクリックします。追加の Polyspace ビューを開くを参照してください。

  • また、任意の Polyspace as You Code 結果の状況依存ヘルプを表示するには、[Command Palette] (Ctrl + Shift + P) に移動して [Polyspace: コンテキスト ヘルプを開く] を選択します。メニューから結果ファミリを選択して、結果名 (UNMODIFIED_VAR_NOT_CONST など) を入力します。

ご使用のシステム ブラウザーで Polyspace as You Code 拡張機能に関する検索可能なドキュメンテーション全体を開くには、[Command Palette] (Ctrl + Shift + P) に移動して [Polyspace: ドキュメンテーションを開く] を選択します。

チェッカーとその他の設定の構成

既定では、Polyspace as You Code は開発者が最も関心がありそうな欠陥をチェックします。Visual Studio Code の Polyspace as You Code 拡張機能設定で、チェッカーのセットを展開してその他の構成を行うことができます。

Ctrl + , (コンマ) を押して設定を開き、設定の検索バーに polyspace と入力します。

たとえば、次の操作を行えます。

すべての設定のリストについては、Configure Polyspace as You Code Extension in Visual Studio Codeを参照してください。