RISC-V IDE MRS2使用笔记(九):静态代码分析

RISC-V IDE MRS2使用笔记(九):静态代码分析

今天和大家分享一个提升开发效率的功能:MRS2 V2.3.0版本新增的静态代码分析!它基于clang-tidy,能在不运行程序的情况下提前发现内存错误、并发风险和性能隐患,让代码质量变得更可靠。

使用方法:要在 MRS2 中使用静态代码分析,只需右键单击要分析的源文件或者工程,然后选择"分析代码(analyze code)"。 就可以在"输出"窗口中获得结果列表。如果没有错误或警告,它将在output窗口显示为"没有问题被发现"。

在配置界面中,MRS2 默认仅启用 "Clang Static Analyzer Checks" 系列选项。我们可通过在项目上右键点击并选择"设置分析选项(Config Analyze Options)"(如图 1 所示),对 clang-analyzer 的各项检查规则进行启用或禁用的设置。如果想要了解每个选项的详细解释可单击"Detailed Introduction"跳转至官网进行查看(https://clang.llvm.org/docs/analyzer/checkers.html)。

①clang-analyzer-core.:通用检查器,例如零除检查器、空指针解引用检查器、未初始化值使用检查器等。这些检查器必须始终开启,因为其他检查器依赖它们。
②clang-analyzer-cplusplus.
:C++ Checkers.

③clang-analyzer-deadcode.DeadStores:检查存储到变量中的值是否之后从未被读取过

④clang-analyzer-fuchsia.HandleChecker:句柄用于标识资源。与指针类似,句柄可能会发生泄漏、双重释放或释放后使用的情况。此检查旨在发现此类问题。(Fuchsia 是谷歌目前正在开发的一款基于开源能力的操作系统。该checker能够发现 Fuchsia API 各种误用情况的检查器。)

⑤clang-analyzer-nullability.:用于警告空指针传递和解引用错误。
⑥clang-analyzer-option.
:用于可移植性、性能、可选安全性和特定编码风格规则的检查器。

⑦clang-analyzer-osx.:macOS 检查器。
⑧clang-analyzer-security.
:与安全相关的检查器。

security.ArrayBound (C, C++):报告对位于所访问区域(数组、堆分配区域、字符串字面量等)起始位置之前或结束位置之后的内存的越界访问。

security.FloatLoopCounter ©:当使用浮点值作为循环计数器时发出警告。

⑨clang-analyzer-unix.: POSIX/Unix checkers.
⑩clang-analyzer-webkit.
: WebKit代码库中问题的检查器。(WebKit是一个开源的网页浏览器引擎,适用于macOS、iOS和Linux系统。)

如果想要启用除默认配置外的其他检查项,也可以在快捷设置中进行添加check选项。

更多可用检查项可以参见clang-tidy 官方文档:(https://clang.llvm.org/extra/clang-tidy/checks/list.html)

使用效果:如果直接编译这段代码,编译器可能不会给出任何警告。当把应用程序下载到目标设备上,代码会发生非法操作,在程序运行时将出现除以 0 的情况,这可能导致系统bug。

如果使用静态代码分析则会进行提示:

可以看到,静态代码分析器能够捕获这一潜在问题,并以警告的形式通知开发者:根据当前源代码,程序中很可能会发生除以 0 的错误。可以通过单机输出条目跳转到源码位置

相关推荐
Diligently_2 天前
idea 中vm option 配置
java·ide·intellij-idea
我命由我123452 天前
在 Android Studio 中,新建 AIDL 文件按钮是灰色
android·ide·android studio·安卓·android jetpack·android-studio·android runtime
AC赳赳老秦2 天前
云原生AI故障排查新趋势:利用DeepSeek实现高效定位部署报错与性能瓶颈
ide·人工智能·python·云原生·prometheus·ai-native·deepseek
被制作时长两年半的个人练习生2 天前
claude code for vscode 配置 qwen3.5
ide·vscode·claude code·qwen3.5
圣心2 天前
Visual Studio Code 中的 AI 智能操作
ide·人工智能·vscode
吹牛不交税2 天前
关于vscode左侧资源管理器目录层级疑似异常的问题
ide·vscode·编辑器
xixi09242 天前
selenium IDE安装使用教程
ide·selenium·测试工具
西门吹-禅2 天前
【eclipse 升级】
java·ide·eclipse
电子科技圈2 天前
XMOS推动智能音频等媒体处理技术从嵌入式系统转向全新边缘计算
人工智能·mcu·物联网·设计模式·音视频·边缘计算·iot
code bean3 天前
Visual Studio 2026 离线安装包制作指南
ide·visual studio