コード分析ツールを使用したアプリケーション品質の分析

[コード分析] ウィンドウは、Visual Studio 2013 のすべてのエディションで使用できます。

コード分析機能

[コード分析] ウィンドウ

コード分析の警告が、コード分析ツールのウィンドウに表示されます。このウィンドウは、コード分析の警告を管理および解決するために役立ちます。

フィルターの警告メッセージ

ウィンドウで、キーワード、プロジェクト、および重大度によって [コード分析] ウィンドウのメッセージをフィルター処理できます。

コード エディターでの強調表示

[コード分析] ウィンドウでメッセージを選択すると、そのメッセージが発生した行がソース コード エディターで強調表示されます。

C++ メッセージの抑制

[コード分析] ウィンドウで、選択された警告を抑制するプラグマをソース コードに挿入できます。

C++ 規則セット

マネージ コードと同様に、規則セットを作成または使用して、コード分析の実行に適用する分析規則を指定できます。

Windows ストア アプリのサポート

Windows ストア アプリで、Visual Basic、C#、および C/++ コードのコード分析を実行できます。詳細については、Windows デベロッパー センターの「Visual Studio コード分析による Windows ストア アプリのコード品質の分析」を参照してください。

新しい C++ 同時実行の警告

新しい同時実行の警告によって、マルチスレッドの C/C++ プログラムで作業分野を確実にロックすることができます。アナライザーは、潜在的な競合状態、ロック順序の逆転、呼び出し元/呼び出し先のロック コントラクト違反、一致しない同期操作など、さまざまな同時実行のバグを検出します。

C26100

競合状態。変数 <var> をロック <ロック> で保護する必要があります

C26101

変数 <var> に対する適切なインタロック操作の使用の失敗。

C26105

ロック順序の違反。ロック <ロック> をレベル <レベル> で取得すると、順序の逆転が発生します

C26110

関数 <func> の呼び出し前の呼び出し元でのロック <lock> の保持の失敗。

C26111

関数 <func> の呼び出し前の呼び出し元でのロック <lock> の解放の失敗。

C26112

<func> の呼び出し前に、呼び出し元がロックを保持できない。

C26115

関数 <func> でのロック <lock> の解放の失敗。

C26116

<func> でのロック <lock> の取得または保持の失敗。

C26117

関数 <func> での保持されていないロック <lock> の解放。

C26130

関数 <func> に _Requires_lock_held_(<lock>) 注釈または _No_competing_thread_ 注釈がない。それ以外の場合は、競合状態である可能性があります。変数 <var> をロック <ロック> で保護する必要があります

C26135

関数 <func> に注釈 <annotation> がない。

C26140

同時実行 SAL 注釈のエラーです。

C26160

関数 <func> の呼び出し前に、呼び出し元でロック <lock> の保持に失敗する可能性があります。

C26165

ロックの解放に失敗する可能性があります

C26166

関数 <func> でロック <lock> の取得または保持に失敗する可能性があります。

C26167

関数 <func> で保持されていないロック <lock> を解放する可能性があります。

C28101

Drivers モジュールは、現在の関数が適切な型の関数ではないと推論しました

C28182

NULL ポインターを逆参照しています。

このセクションの内容

マネージ コードの分析

マネージ コードのコード分析を使用すると、Microsoft .NET Framework デザイン ガイドラインに規定されたプログラミングやデザインに関する規則違反など、マネージ アセンブリに関する情報を得ることができます。警告メッセージは、プログラミングやデザイン上の問題を識別し、可能であれば問題の解決方法を提供します。

C++ コードの分析

C/C++ コード分析ツールは、C/C++ ソース コードの障害に関する情報を開発者に提供します。このツールによってレポートされる一般的なコーディング エラーとしては、バッファー オーバーラン、初期化されていないメモリ、null ポインターの逆参照、メモリ リーク、リソース リークなどがあります。

ドライバーのコード分析

コード分析ツールでドライバーのソース コードを系統的に分析することにより、ドライバーの安定性と信頼性を向上させることができます。

  • Analyzing Driver Quality by Using Code Analysis Tools
    ドライバーのコード分析は、C および C++ プログラムの基本的なコーディング エラーを検出するコンパイル時の静的検証ツールで、主にカーネル モードのドライバー コードのエラーを検出するように設計された特殊なモジュールが含まれます。静的ドライバー検証ツール (SDV) は、Windows カーネル モードのドライバーのソース コードを系統的に分析する静的検証ツールです。SDV は、ドライバーが Windows オペレーティング システムのカーネルと適切にやり取りしているかどうかを判定します。

  • Code Analysis for Drivers Warnings
    ドライバーのコード分析でドライバー コードに潜在的なエラーが検出されたときにレポートされる警告ついて説明します。

このセクションのその他のトピック

  1. Viewing Code Analysis Messages

  2. チーム プロジェクト チェックイン ポリシーによるコード品質の向上

コード分析の詳細情報

チーム プロジェクト チェックイン ポリシーによるコード品質の向上

関連タスク

  1. マネージ コードの複雑さと保守性の測定

  2. 単体テストを使用したコードの検証