安全客
安全客 安全客
当前位置:安全客文章资讯安全资讯安全新闻
日期:2019-11-12 00:36:00  来源:本站整理

在Linux平台开发C++时用PVS-Studio静态分析代码[安全新闻]

赞助商链接



  本文“在Linux平台开发C++时用PVS-Studio静态分析代码[安全新闻]”是由安全黑客为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

PVS-Studio支持分析用C, C++,C#和Java开发的项目。你可以在Windows,Linux和macOS下使用它。本文将为大家简单演示,如何在Linux环境下使用PVS-Studio来分析C和C++代码。

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

通过在消息的位置单元格中单击,你可以跳转到相应的代码行:

通过单击代码列中的诊断代码,你可以打开有关此诊断的文档。
抑制分析警告
使用任何静态分析器检查源代码时,都有出现误报的可能,或者出现一些无关紧要的警告。PVS-Studio具有抑制此类消息的方法。要定位单个警告,你可以使用“抑制错误警报”文档中描述的方法。
此外,在检查旧代码时,你可能还希望抑制所有警告。通常,如果你只是想检查添加到现有代码库的新代码,则可能需要此选项。你可以使用pvs-studio-analyzer的suppress参数。
你可以使用以下命令批量抑制报告中的警告:
pvs-studio-analyzer suppress /path/to/report.log
有关已抑制警告的信息存储在名为suppress_base.json的文件中。 此类消息不包括在后续检查的报告中。

[1] [2]  下一页


  以上是“在Linux平台开发C++时用PVS-Studio静态分析代码[安全新闻]”的内容,如果你对以上该文章内容感兴趣,你可以看看安全黑客为您推荐以下文章:
  • 在Linux平台开发C++时用PVS-Studio静态分析代码
  • 周末的项目:在Linux上使用蜜罐来欺骗攻击者
  • SMEP:它是什么和如何击败它在Linux
  • 在Linux系统下享用IPv6的畅快
  • 在Linux服务器上手工释放内存
  • 在Linux下安装配置MPICH2.1.4
  • <b>在linux上用arptables配置arp防火墙</b>
  • <b>在Linux下构建L2TP VPN的办法</b>
  • 在Linux下利用Nginx构建虚拟主机
  • 在Linux/Unix平台下安装MySQL
  • 在Linux上踢除某个用户和账户安全
  • <b>在LINUX下探测硬件信息的号令</b>
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2012-2019 www.110hack.com. All Rights Reserved .

    网站备案号 粤ICP备13027347号-2