静态分析代码PVS-Studio

本文介绍了如何在Linux环境下安装PVS-Studio静态代码分析工具,包括使用存储库和安装包的方法。安装后,通过输入许可数据激活,可以采用编译监控或直接从构建系统运行两种方式进行项目检查。PVS-Studio利用strace或compile_commands.json文件进行分析,并提供多种报告格式供用户选择。
部署运行你感兴趣的模型镜像

在Linux下安装PVS-Studio有多种方法,这具体取决于你的发行版类型。最方便和首选的方法是使用存储库,因为它允许在发布新版本时自动更新分析器。另一个选择是使用安装包,你可以在这里找到它。

安装命令也因你使用的Linux发行版而异。例如,这是基于Debian的存储库安装命令:

wget -q -O - https://files.viva64.com/etc/pubkey.txt | sudo apt-key add -
sudo wget -O /etc/apt/sources.list.d/viva64.list \

https://files.viva64.com/etc/viva64.list

sudo apt update
sudo apt install pvs-studio

要从可下载的软件包安装PVS-Studio,你可以使用gdebi:

sudo gdebi pvs-studio-VERSION.deb
安装过程在“Linux安装和更新PVS-Studio”文档部分有更详细的描述。你还可以在那里找到非Debian系统的信息。

安装PVS-Studio后,需要输入数据许可。命令如下:

pvs-studio-analyzer credentials NAME KEY [-o LIC-FILE]
NAME和KEY分别是注册用户名和许可证密钥。可选参数-o允许你指定将生成许可证文件的位置。默认情况下,它将被存储在~/.config/PVS-Studio/目录中。

如果你需要试用密钥,可以在“下载和评估PVS-Studio”页面上获取。

检查你的项目
安装完成后,就可以开始检查项目了。其主要有两种方法::

1.编译监控。

2.直接从构建系统运行。

我们先来谈谈第一种方式。要在Linux下启动监视,需要strace程序。PVS-Studio使用它来收集在构建期间启动的进程列表和参数。

使用以下命令启动构建:

pvs-studio-analyzer trace – make
这里使用make,但你正在运行的用以构建项目的任意其他命令都可以在这个位置。如果需要,你还可以用通常的方式将命令行参数传递给它。

构建之后,strace将创建一个文件,然后分析器将使用该文件来检查源代码。启动分析的命令如下。

pvs-studio-analyzer analyze -o /path/to/project.log
这将生成一个编码的日志文件,你可以将其转换为受支持的格式。稍后我们将讨论如何处理报告的问题。

除了strace之外,你还可以基于compile_commands.json(JSON编译数据库)文件进行分析。许多构建系统都有导出编译命令的内置方法,或者你可以使用BEAR程序来执行此操作。以下是在这种情况下启动分析的命令:

pvs-studio-analyzer analyze –f /path/to/compile_commands.json
请注意,分析器通过其可执行文件名识别构建过程中使用的编译器。如果在尝试分析项目时遇到“No compilation units found”错误,请尝试通过-compiler或-c命令行键显式指定编译器的名称:

pvs-studio-analyzer analyze -c MyCompiler
如果你正在使用交叉编译,或者你的编译器具有非标准可执行文件名,则可能需要此项。

除监控模式外,你还可以将分析器直接集成到构建系统或IDE中。我们的官方GitHub存储库提供了已配置集成的示例项目:

pvs-studio-cmake-examples

pvs-studio-qmake-examples

pvs-studio-makefile-examples

pvs-studio-waf-examples

pvs-studio-eclipse-examples

要了解有关在Linux下运行分析器的更多信息,请参阅文档。

报告
检查项目后,分析器会创建一份编码报告。要将其转换为受支持的格式,你需要使用PVS-Studio安装附带的plog-converter实用程序。

以下是支持的格式列表:

xml-一种便于进一步处理分析结果的格式,SonarQube插件支持该格式;

csv – 文件以纯文本形式存储表格数据(数字和文本);

errorfile – gcc和clang的输出格式;

tasklist – 可以在QtCreator中打开的错误格式;

html – html报告,包含分析结果的简短描述;

fullhtml – 报告根据源码中的不同参数和导航对分析结果进行排序。

fullhtml格式是查看报告最方便的格式,因为这种格式支持你直接跳转到你感兴趣的警告相对应的代码行。以下是将你的报告转换为该格式的命令:

plog-converter -a GA:1,2 -t fullhtml /path/project.log -o /path/report_dir
当你启动它时,名为/path/report_dir的新创建目录将包含所有报告文件。

注意-a参数。它允许你指定应在结果报告中显示的警告内容。如果你需要过滤分析器的输出,这会非常方便。上面的命令将创建一份报告,其中将仅包含第一和第二确定性级别(高和中)的一般分析消息。

http://www.45zq.cn/portal/article/index/id/196.html

您可能感兴趣的与本文相关的镜像

ACE-Step

ACE-Step

音乐合成
ACE-Step

ACE-Step是由中国团队阶跃星辰(StepFun)与ACE Studio联手打造的开源音乐生成模型。 它拥有3.5B参数量,支持快速高质量生成、强可控性和易于拓展的特点。 最厉害的是,它可以生成多种语言的歌曲,包括但不限于中文、英文、日文等19种语言

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值