我们正在更容易地配置和使用C++代码分析特性,并以15.7为目标的一组更改。在前15.7预览版中,我们已经清理了UI,修复了文档链接 最重要的是,简化了分析扩展的方式 已配置。
如果您不熟悉C++核心检查,它是一个代码分析扩展,它帮助您更新代码,使其更安全,并使用更为现代的样式,如 C++核心指南 . 你可以了解更多关于我们在我们的网站上执行的规则 参考页 .
DE上的C++核心检查扩展 过错
我们希望让开发人员更容易利用来自C++核心检查的新检查。 . 以前,如果开发人员希望使用代码分析的C++核心检查,那么它们必须显式地启用每个项目的分析扩展。然后,当运行分析时,工具会产生大量的核心检查警告,因为所有C++核心检查警告都默认启用。
从预览1开始,每当启用C++核心检查扩展 代码分析 正在运行。我们还更新了微软本机推荐规则和微软本机最小规则,只包括最高影响的C++核心检查警告(更多关于下面的)。我们认为这提供了最好的体验:在项目上运行代码分析“只起作用”,而不需要额外的配置。
我们还删除了用于配置分析扩展的UI,因为不再需要它。我们的目标是使规则集成为代码分析的一站式配置文件。开发人员所需要担心的就是要运行哪些警告,引擎将根据规则集智能地启用和禁用扩展和检查程序。 预览1中未完全实现此功能;剩下的工作将在即将到来的预览中发布。
禁用项目的C++核心检查
因为这项工作仍在预览中,所以我们添加了一种恢复到以前行为的方法。如果C++核心检查扩展会导致项目出现问题,则可以通过编辑VCXPROJ文件并添加以下属性来禁用每个项目。
<PropertyGroup> <EnableCppCoreCheck>false</EnableCppCoreCheck> </PropertyGroup>
使用msbuild从命令行生成时,也可以通过传递属性来禁用它 /p:EnableCppCoreCheck=假
如果您发现需要禁用扩展,我们希望了解您发现的任何阻塞问题。使用VisualStudio中的“发送反馈”按钮报告任何问题。
推荐规则集和最小规则集中的新规则
以前微软本地推荐的微软规则集都有C++核心检查警告。 启用 默认情况下。这意味着,如果你想尝试C++核心检查并启用扩展,你会收到大量的警告。
为了与“推荐”和“最低”规则集的精神保持一致,我们 查看了我们的内部项目,并确定了C++核心检查规则,这些规则帮助防止了最重要的错误。推荐规则和最小规则集仍然包含他们先前所分析的核心分析器规则,现在还包含了高影响力的C++核心检查规则。如果您想运行所有启用C++核心检查警告,您仍然可以选择“C++核心检查规则”规则集。
Microsoft Native Minimum中的新功能
- C26450型 算术运算的结果可证明有损
- C26451型 算术运算的结果将大小转换为较大的大小
- C26452型 移位u计数u负u或u太大u
- C26453型 左移位负号
- C26454型 算术运算的结果负数无符号
- C26495型 成员u UNINIT
Microsoft本机推荐的新功能
C++核心检查实验扩展删除
VisualStudio的以前版本包含C++核心检查(实验)选项,用于不完全准备发布的规则。我们已经在几个版本中更新了这些规则,现在处理原始指针、所有者指针和生存期概要文件的规则在 主检查器。一些实验性的规则不能精确地映射到新的规则,因此被弃用。
以下实验规则已被否决
- C26412解除u无效u指针
- C26413取消注册
- C26420将u NONOWNER u分配给u EXPLICIT u OWNER
- C26421分配有效所有者
- C26422有效u所有者u离开u范围
- C26423分配未分配给所有者
- C26424有效u分配u离开u范围
- C26425将u分配给u STATIC
- C26499无寿命跟踪
安装和完成
我们还花了一些时间修复一些小bug,以改进C++代码分析的整体经验。
- 单击错误将导航到当前文档页,而不是Visual Studio早期版本的页面。
- 从“分析”菜单中删除了不支持代码度量的项目的“运行代码度量”。
- C++核心检查现在运行得更快,与15.6版本相比,内存使用率高达50%个百分点。
- 添加了热键以对当前文件运行代码分析: Ctrl+Shift+Alt+F7组合键 在默认的键盘映射中。
总结
我们很兴奋默认有C++核心检查,而为我们的项目建立代码分析工具的故事更简单。希望你会发现C++代码分析工具更容易使用,并且新的警告有用。 下载最新版本 Visual Studio预览 试试看。
一如既往,我们欢迎您的反馈。欢迎通过电子邮件发送任何评论 visualcpp@microsoft.com ,通过 推特@ 视觉 ,或Facebook Microsoft Visual Cpp .
如果您在VS 2017中遇到MSVC的其他问题,请通过 报告问题 选项,从安装程序或VisualStudioIDE本身。如需建议,请告知我们 用户语音 . 谢谢您!
快乐的编码。