使用代码分析工具分析应用程序质量
Visual Studio 2013 的所有版本均提供代码分析窗口。
代码分析功能
代码分析窗口 |
代码分析警告现在显示在代码分析工具窗口上。该窗口可帮助你管理和解决代码分析警告。 |
筛选器警告消息 |
在窗口中,可以按关键字、项目和严重性来筛选“代码分析”窗口中的消息。 |
代码编辑器突出显示 |
在代码分析窗口中选择一条消息会在源代码编辑器中突出显示触发消息的行。 |
禁止显示 C++ 消息 |
在代码分析窗口中,可以向禁止显示所选警告的源代码中插入杂注。 |
C++ 规则集 |
如同托管代码一样,你现在通过创建或运行规则集来指定想要应用于代码分析运行的分析规则。 |
对 Windows 应用商店应用程序的支持
可以在 Windows 应用商店应用中的 Visual Basic、C# 和 C/++ 代码上运行代码分析。有关详细信息,请参阅 Windows 开发人员中心中的用 Visual Studio 代码分析功能分析 Windows 应用商店应用的代码质量。
新 C++Concurrency 警告
新的并发警告帮助你确保锁定多线程 C/C++ 程序中的规范。分析器检测到大量并发 bug,包括潜在争用条件、锁定顺序颠倒、调用方/被调用方锁定协定冲突和同步操作不匹配。
争用条件。变量 <var> 应受到锁 <lock> 的保护。 |
|
未能正确对变量 <var> 使用互锁操作。 |
|
锁定顺序冲突。获取级别为 <level> 的锁 <lock> 导致顺序颠倒。 |
|
调用方未能在调用函数 <func> 之前持有锁 <lock>。 |
|
调用方未能在调用函数 <func> 之前释放锁 <lock>。 |
|
调用方不能在调用 <func> 之前持有任何锁。 |
|
未能在函数 <func> 中释放锁 <lock>。 |
|
未能在 <func> 中获取或持有锁 <lock>。 |
|
在函数 <func> 中释放未持有的锁 <lock>。 |
|
在函数 <func> 处缺少注释 _Requires_lock_held_(<lock>) 或 _No_competing_thread_。否则这可能是一个争用条件。变量 <var> 应受到锁 <lock> 的保护。 |
|
在函数 <func> 处缺少注释 <annotation>。 |
|
并发 SAL 注释错误 |
|
调用方可能无法在调用函数 <func> 之前持有锁 <lock>。 |
|
可能无法释放锁 |
|
可能无法在函数 <func> 中获取或持有锁 <lock>。 |
|
可能在函数 <func> 中释放未持有的锁 <lock>。 |
|
驱动程序模块已推断出当前函数的类型不正确 |
|
取消引用 NULL 指针 |
本节内容
托管代码分析
针对托管代码的代码分析提供有关托管程序集的信息,例如 Microsoft .NET Framework 设计准则中规定的编程和设计规则的冲突。警告消息标识任何相关的编程和设计问题,如有可能,还提供有关如何修复问题的信息。
使用代码分析来分析托管代码质量
了解如何配置和运行托管代码分析工具。托管代码的代码分析警告 介绍代码分析针对 C/C++ 代码报告的警告。
C++ 代码分析
C/C++ 代码分析工具为开发人员提供有关其 C/C++ 源代码中可能存在的缺陷的信息。该工具报告的常见编码错误包括缓冲区溢出、内存未初始化、null 指针取消引用,以及内存和资源泄漏。
使用代码分析来分析 C/C++ 代码质量
了解如何配置和运行 C/C++ 代码分析工具。C/C++ 代码分析警告
介绍代码分析针对 C/C++ 代码报告的警告。
驱动程序的代码分析
通过系统地分析驱动程序源代码,代码分析工具可以帮助提高驱动程序的稳定性和可靠性。
Analyzing Driver Quality by Using Code Analysis Tools
驱动程序代码分析是一个编译时静态验证工具,该工具可检测 C 和 C++ 程序中的基本编码错误,并且该工具包括一个专用模块,该模块设计用于检测(主要)内核模式驱动程序代码中的错误。Static Driver Verifier (SDV) 是一个静态验证工具,可以系统分析 Windows 内核模式驱动程序的源代码。SDV 确定驱动程序是否与 Windows 操作系统内核正确交互。Code Analysis for Drivers Warnings
介绍驱动程序代码分析在驱动程序代码中检测到可能的错误时报告的警告。