静态检查工具scan-buid简要帮助

本文介绍如何在Linux环境下使用scan-build进行静态代码分析。主要内容包括安装步骤、配置说明及使用方法,并展示了分析结果的查看方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一 安装说明

scan-build是clang源码中的静态代码分析工具,安装的时候需要注意和clang的版本要保持一致才可以,网上的有一个python版本,但是我安装后无法使用;

1.1 linux下安装

#centos 下安装 yum -y install clang-analyzer #或通过dnf安装 sudo dnf -y install clang-analyzer

二  使用说明

2.1 linux下使用说明

这个配置脚本需要在scan-build中运行是因为scan-build能通过介入到编译器来扫描你的源文件。scan-build将编译器gcc设置为analyze-cc。analyze-cc作为一个伪编译器,转发命令行参数给gcc和clang来执行静态分析。 然后执行以下命令,即可开始进行静态分析。

# 清理 需要先清理 再运行不然看不到结果
make clean
mkdir output
scan-build --use-analyzer `which clang` make

说明:

  1. --use-analyzer 指定了clang的路径

最后显示的结果是:

scan-build: 29 bugs found.
scan-build: Run 'scan-view /tmp/scan-build-2022-09-22-174727-11107-1' to examine bug reports.
scan-build: The analyzer encountered problems on some source files.
scan-build: Preprocessed versions of these sources were deposited in '/tmp/scan-build-2022-09-22-174727-11107-1/failures'.
scan-build: Please consider submitting a bug report using these files:
scan-build:   http://clang-analyzer.llvm.org/filing_bugs.html

2.2 输出结果

在/tmp/scan-build-2022-09-22-174727-11107-1/failures 目录下为输出的结果,打开上层的index.html 会显示检测出来的问题如下图,可以看到检测的内容有:

  1. 逻辑错误

  2. 未使用的读操作

  3. 内存泄露等问题 [图片] 错误位置标记的非常漂亮: [图片]

三 相关参考

https://blog.youkuaiyun.com/yk_wing4/article/details/99695102
https://joydig.com/clang-static-analyzer-usage/
https://github.com/rizsotto/scan-build
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值