共用方式為


使用程式碼分析工具進行應用程式品質分析

所有版本的 Visual Studio 2013 都可使用 [程式碼分析] 視窗。

程式碼分析功能

[程式碼分析] 視窗

程式碼分析警告現在會顯示在 [程式碼分析工具] 視窗中。此視窗可協助您管理和解決程式碼分析警告。

篩選警告訊息

您可以依關鍵字、專案和嚴重性,在視窗上篩選 [程式碼分析] 視窗上的訊息。

程式碼編輯器醒目提示

在 [程式碼分析] 視窗中選取一則訊息,就會在程式碼編輯器中醒目提示已觸發訊息的那一行原始碼。

C++ 訊息隱藏項目

在 [程式碼分析] 視窗中,您可以將 pragma 插入會隱藏所選警告的原始程式碼。

C++ 規則集

就像 Managed 程式碼,您現在也可以指定分析規則,透過建立或使用規則集將它套用到執行的程式碼分析。

Windows 市集應用程式的支援

您可以在 Windows 市集應用程式中對 Visual Basic、C# 和 C/++ 程式碼執行程式碼分析。如需詳細資訊,請參閱 Windows 開發人員中心的使用 Visual Studio 靜態程式碼分析,分析 Windows 市集應用程式的程式碼品質

新的 C++ 並行警告

新的並行警告可協助您確保在多執行緒 C/C++ 程式中鎖定專業領域。分析會偵測多個並行處理問題,包括可能的競爭情形、鎖定順序反轉、呼叫端/被呼叫端鎖定合約違規,以及不相符的同步處理作業。

C26100

競爭條件。變數 <var> 應該受到鎖定 <lock> 保護。

C26101

無法對變數 <var> 正確使用連鎖作業。

C26105

鎖定順序違規。使用層級 <level> 取得鎖定 <lock> 會反轉順序。

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> 應該受到鎖定 <lock> 保護。

C26135

函式 <func> 中遺漏註釋 <annotation>。

C26140

並行 SAL 註釋錯誤

C26160

呼叫端可能無法在呼叫函式 <func> 之前保留鎖定 <lock>。

C26165

可能無法釋放鎖定

C26166

可能無法取得或保留函式 <func> 中的鎖定 <lock>。

C26167

可能會釋放函式 <func> 中未保留的鎖定 <lock>。

C28101

驅動程式模組推斷目前的函式不是正確的函式類型

C28182

取值 NULL 指標

本章節內容

Managed 程式碼分析

Managed 程式碼的程式碼分析會提供 Managed 組件的相關資訊,例如是否違反 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. 使用 Team 專案簽入原則強化程式碼品質

更多程式碼分析資訊

使用 Team 專案簽入原則強化程式碼品質

相關工作

  1. 測量 Managed 程式碼的複雜度和維護性

  2. 使用單元測試驗證程式碼