一款国产静态代码分析工具与Converity的对比

本文对比了源伞科技的Pinpoint与Converyity在静态代码分析工具的功能,包括扩展和部署、分析能力等方面。Pinpoint在分布式多机扫描、深度指针分析、函数调用链分析、数值精确建模和多线程行为理解方面展现出优势,尤其在处理复杂业务逻辑和深度问题检测上表现突出。
摘要由CSDN通过智能技术生成

源伞科技Pinpoint,作为BAT都在使用的一款静态代码分析工具,到底有什么领先于其他厂商的能力?

1. 扩展和部署功能对比

  • 源伞科技Pinpoint现有的检查器可以通过简单的json配置文件扩展业务逻辑。比如敏感数据泄露到日志检查器,企业或许有很多自己的日志打印函数,我们可以通过人工配置指定,即可提高检测质量。
  • 如果不想人工配置,Pinpoint有未公开发布的库函数学习工具,可以通过线下分析企业代码库自动学习和生成上述配置文件。
  • Pinpoint对分布式多机扫描部署支持比Coverity好,并发扫描和结果合并x性能也比Coverity更强,能更好支持BAT级别的数千代码库扫描(已在BT部署验证)。

2. 分析能力对比

本节补充一些人工构造的例子介绍Pinpoint在分析能力上比Coverity强的部分。本节所有代码示例,Coverity均有误报或漏报。

  1. Pinpoint更懂数据流
  • 精确深度的指针分析,深入分析内存中的程序行为
  • 高深度高精度函数调用链分析,查找跨越多层函数的深度问题

示例代码如下:
(链接:https://www.sourcebrella.com/online-showcase/?id=5b483da03a21cd078346028f),此示例代码基于空指针(Null Pointer Dereference)问题检测。
准备代码:

在这里插入图片描述
代码中我们定义了一个base基类和两个衍生类,其中Derived1的doit函数返回了空指针(见(1))这个空指针随后会被用到。后边我们又定义了一个user类,里边有两个变量,dat1初始化为derived1类型(有空指针),dat2初始化为derived2类型,是安

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值