Visual Studio 2017 15.7预览1的C++代码分析改进

点这里看中文版

null

我们正在更容易地配置和使用C++代码分析特性,并以15.7为目标的一组更改。在前15.7预览版中,我们已经清理了UI,修复了文档链接 最重要的是,简化了分析扩展的方式 已配置。

如果您不熟悉C++核心检查,它是一个代码分析扩展,它帮助您更新代码,使其更安全,并使用更为现代的样式,如 C++核心指南 . 你可以了解更多关于我们在我们的网站上执行的规则 参考页 .

DE上的C++核心检查扩展 过错

我们希望让开发人员更容易利用来自C++核心检查的新检查。 . 以前,如果开发人员希望使用代码分析的C++核心检查,那么它们必须显式地启用每个项目的分析扩展。然后,当运行分析时,工具会产生大量的核心检查警告,因为所有C++核心检查警告都默认启用。

从预览1开始,每当启用C++核心检查扩展 代码分析 正在运行。我们还更新了微软本机推荐规则和微软本机最小规则,只包括最高影响的C++核心检查警告(更多关于下面的)。我们认为这提供了最好的体验:在项目上运行代码分析“只起作用”,而不需要额外的配置。

我们还删除了用于配置分析扩展的UI,因为不再需要它。我们的目标是使规则集成为代码分析的一站式配置文件。开发人员所需要担心的就是要运行哪些警告,引擎将根据规则集智能地启用和禁用扩展和检查程序。 预览1中未完全实现此功能;剩下的工作将在即将到来的预览中发布。

Screenshot showing the previous code analysis extension panel that was removed.
代码分析扩展选择面板已被删除–扩展将根据已启用的规则自动启用。

Screenshot showing that the extension panel was removed.
在15.7预览版1中,代码分析扩展面板已从项目属性页中删除。

禁用项目的C++核心检查

因为这项工作仍在预览中,所以我们添加了一种恢复到以前行为的方法。如果C++核心检查扩展会导致项目出现问题,则可以通过编辑VCXPROJ文件并添加以下属性来禁用每个项目。

  <PropertyGroup>     <EnableCppCoreCheck>false</EnableCppCoreCheck>   </PropertyGroup> 

使用msbuild从命令行生成时,也可以通过传递属性来禁用它 /p:EnableCppCoreCheck=假

如果您发现需要禁用扩展,我们希望了解您发现的任何阻塞问题。使用VisualStudio中的“发送反馈”按钮报告任何问题。

以前微软本地推荐的微软规则集都有C++核心检查警告。 启用 默认情况下。这意味着,如果你想尝试C++核心检查并启用扩展,你会收到大量的警告。

为了与“推荐”和“最低”规则集的精神保持一致,我们 查看了我们的内部项目,并确定了C++核心检查规则,这些规则帮助防止了最重要的错误。推荐规则和最小规则集仍然包含他们先前所分析的核心分析器规则,现在还包含了高影响力的C++核心检查规则。如果您想运行所有启用C++核心检查警告,您仍然可以选择“C++核心检查规则”规则集。

Microsoft Native Minimum中的新功能

Screenshot of warning C26498 on sample code.
简单的C26498警告实例,从C++核心检查。

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本身。如需建议,请告知我们 用户语音 . 谢谢您!

快乐的编码。

© 版权声明
THE END
喜欢就支持一下吧,技术咨询可以联系QQ407933975
点赞0 分享