代码分析

实时分析

CLion 会不断监控代码,寻找其中可能的错误。 如果它发现任何潜在错误,会在编辑器中 高亮显示可疑的代码段。 您可以在编辑器右侧的装订区域中看到 黄色和红色的错误字段,点击这些字段就可以转至 检测到的问题。 此外,按下 F2/Shift+F2 也可以在不同的高亮显示的问题间切换。 装订区域 顶部的状态指示器显示了文件的状态。

除了查找编译错误外,CLion 还可以识别低效代码,甚至可以对代码执行数据流分析来找到不可到达/未使用的代码,以及 其他问题和“代码异味”。

快速修复

CLion’ 的实时代码检查覆盖了 C/C++ 代码中的 40 种潜在问题案例以及其他 语言的几种问题案例。

当问题被高亮显示后,请将脱字符号放在它上面,然后按下 Alt+Enter 并从给出的 快速修复方案中选择。 (您也可以点击线段旁发光的灯泡进入 上下文菜单。)

您还可以选择修复项目中所有类似的问题。 如果您认为此检查没什么用,也可以在期望的范围内禁用这些警告。

检查代码

CLion 为所有可用的检查提供了详尽的说明。 您还可以管理 它们的严重程度(从拼写错误、警告或错误中选择),在部分情况下甚至还可以调整 检查的参数来更出色地反应您的需求。

通过 Code | Inspect Code,您可以在该批处理模式中允许多个检查(甚至是全部)。

如果您希望消除所有基本代码中的特定问题,您可以使用按名称运行 检查 (Ctrl+Alt+Shift+I),然后选择范围。 将打开一个单独的窗口,其中包含检查结果,您可以在这里将问题重新分组,并向所有问题批量应用快速修复(如适用)。

Clang-Tidy

Clang-Tidy

CLion 集成了 Clang-Tidy。 Clang-Tidy 检查的显示方式与 CLion 內建的代码检查显示方式一样,也可以通过 Alt+Enter 应用快速修复。

前往 Settings/Preferences | Editor | Inspections | C/C++ | General | Clang-Tidy 来开启/关闭 CLion 中的检查列表。 文本字段中使用 Clang-Tidy 命令行格式。 您可以在这里查看默认配置。 或者使用 .clang-tidy 配置文件,而不是 IDE 提供的设置。

启用 C++ Core GuidelinesClang Static Analyzer 检查,尝试 Modernize 检查,甚至可以实施自己的检查并立刻在 CLion 中获得它们(要自定义检查,请在 Settings/Preferences | Languages & Frameworks | C/C++ 下将 Clang-Tidy 二进制文件改为您自己的文件)。

Clangd 检查

基于 Clangd 的检查

CLion 中基于自定义 Clangd 引擎实现了以下几项检查:

  • 成员函数可以为 “static”
  • 参数选择缺陷
  • 空声明或语句
  • 来自构造函数或析构函数的虚拟调用
  • Unused includes

“unused includes”检查会建议 3 种检测策略:保守、积极以及默认 (Detect not directly used),默认策略最接近“Include What You Use”原则。

了解详情

DFA

数据流分析

数据流分析 (DFA) 跟踪代码中的数据流,并根据分析结果检测潜在问题。 除了本地 DFA(在单一函数内运作),CLion 还包括全局 DFA(将程序的整个翻译单元作为单一单元进行分析)。 全局 DFA 不仅丰富了现有的检查,还增加了几项独特检查。

MISRA

MISRA

CLion 具有来自 MISRA C 2012 和 MISRA C++ 2008 的检查。 支持检查的完整列表保留于我们的 Confluence 页面,可让您轻松跟踪进度。