本页内容

使用 Clang-Tidy 和 Clazy 分析代码

注意:Clang 静态分析器的检查功能 是 Clang-Tidy 的一部分。要使用这些检查功能,您必须为 Clang 工具创建自定义配置,并在 Clang-Tidy 中启用它们。

分析当前文件

默认情况下,Clang 工具会自动分析已打开的文件,并在代码编辑器和“问题”视图中显示结果。

在编辑器和“问题”视图中显示的 Clang 诊断信息

编辑器和“问题”视图中显示的 Clang 诊断信息。

若要关闭分析功能,请转至“Preferences ” > “Analyzer ” > “Clang Tools ”,并取消勾选“Analyze open files ”。

要运行 Clang-Tidy 或 Clazy 来分析当前打开的文件:

  • 在编辑器工具栏上选择“分析文件 ”(Analyze File ),然后选择工具:“Clang-Tidy ”或“Clazy ”。
  • 选择“Tools ” > “C++ ” > “Analyze Current File with Clang-Tidy ” 或 “Analyze Current File with Clazy ”。

分析已打开的项目

要运行 Clang-Tidy 或 Clazy 来分析已打开的项目:

  1. 选择“Analyze ” > “Clang-Tidy ”或“Clazy ”。
  2. 选择要进行检查的文件。

    “待分析文件”对话框

  3. 选择“Analyze ”以开始检查。

查看诊断结果

Clang-Tidy ”或“Clazy ”视图会显示相关问题:

Clang-Tidy 视图

Clang-Tidy 视图中的诊断信息。

注意:如果您在 模式选择器中选择“Debug ”以打开“Debug ”模式,然后选择“Clang-Tidy ”或“Clazy ”,则必须点击“分析项目Analyze Project)”按钮以打开“Files to Analyze ”对话框。

双击一个问题,即可跳转到代码编辑器中该问题出现的位置。

如果某个问题已有修复方案,您可以选中该问题旁边的复选框,将其安排进行修复。选中“Select Fixits ”复选框可选中所有修复方案。要查看问题的状态,请将鼠标指针悬停在复选框旁边的图标上。

要查看标有“灯泡图标 ”图标的缺陷的更多信息,请将鼠标指针悬停在该行上。

单击““首选项”按钮 ”(Preferences )按钮,可自定义当前项目的诊断设置。

筛选诊断信息

要筛选诊断信息:

  1. 选择“过滤器诊断 ”以打开“Filter Diagnostics ”对话框。

    “过滤器诊断”对话框

  2. 选择要查看的诊断项。
  3. 选择“OK ”。

要查看所有诊断信息,请选择“Select All ”。要查看具有修复方案的诊断信息,请选择“Select All with Fixits ”。

要隐藏所有诊断信息,请选择“Clear Selection ”。

要查看特定类型的诊断信息,请右键单击“Diagnostics ”中的条目,然后在上下文菜单中选择“Filter for This Diagnostic Kind ”。要隐藏该类型的诊断信息,请选择“Filter out This Diagnostic Kind ”。

抑制诊断信息

要抑制诊断信息,请在上下文菜单中选择“Suppress This Diagnostic ”或“Suppress This Diagnostic Inline ”。

要查看项目的抑制列表并从中移除诊断项,请选择Projects >Project Settings >Clang Tools

禁用检查

若要在全局范围内或针对特定项目禁用特定类型的检查,请在上下文菜单中选择“Disable This Check ”或“Disable These Checks ”。

从 YAML 文件加载诊断信息

除了运行工具收集诊断信息外,您还可以选择“从使用“-export-fixes”导出的 YAML 文件中加载诊断信息 ”来从使用“-export fixes ”选项导出的YAML文件中加载诊断信息。

另请参阅 “检查代码语法”“配置 Clang 诊断”“操作指南:分析”“指定 Clang 工具设置”“设置 Clang 工具的全局首选项”以及“分析器”

Copyright © The Qt Company Ltd. and other contributors. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.