基于Source Insight_Scan的C/C++静态代码检查工具安装说明

 

//文中软件地址 Source Insight :链接:https://pan.baidu.com/s/1EHENTG4Ll3TzLyqMQZuhbQ 密码:q29m

//Source Insight_Scan地址:链接:https://pan.baidu.com/s/1vtsCouAu7RScGUCvN-KaPg 密码:4ess

在嵌入式软件开发中,对代码质量保证一直都是需要重要考虑的问题,利用人肉眼走查等等方式不但效率低下,能检查出来的错误也有限,而cppcheck、pclint这些工具使用繁琐,安装耗时耗力。在经过了几天查找之后,笔者发现了在Source Insight中集成了一个叫Source Insight_Scan的插件,安装非常简单,同时只需要将整个工程导入Source Insight中直接走查(Source Insight不会对代码进行编译)。

sourceinsight-scan 是一款集成在 SourceInsight 中的c/c++代码静态分析插件,集成了cppcheck,coverity,pclint等业界优秀的静态分析工具的优点。

旨在帮助开发人员,在IDE中快速发现编译器无法发现的非语法错误,降低修复成本。

无需编译,平均扫描速度高达10W行/分钟,快速帮您发现潜在的质量风险,包括空指针,越界,内存泄漏及潜在的逻辑错误,平均准确率高达80%。

支持个性化定制需求,包括规则配置,误报屏蔽,路径屏蔽,配置自定义判空宏等。

SourceInsight_Scan配置&使用说明

1. 安装说明:

双击打开SourceInsight_Scan_Setup.exe进行安装

2. 配置说明:

Ø Step1:打开菜单栏上 Project\Open Project\Base 工程(中文版本SI【基本】工程)

Ø Step2:添加插件文件到Base工程中

单击Project/Add and Remove Project Files (项目/添加和移除项目文件), 在File Names:中拷贝C:\SourceInsight_Scan\SourceInsight_Scan.em,后点击Add添加到Base项目中。

如图所示: Add后SourceInsight_Scan.em出现在下侧的ProjectFiles后,直接点击close即可。

然后请在Project/Close Project (项目/关闭项目) 点击,关闭Base项目。

如果出现如图所示,是否需要同步符号,点击【是】。

Ø Step3:添加菜单

选择Options/Menu Assignment(中文版本为:选项,菜单关联),找到Macro宏:

Si_Scan_Current_Project (扫描整个项目)

Si_Scan_Current_File (扫描当前打开文件)

Si_Scan_Config (扫描规则配置)

依次添加到你需要的Menu中,如Work菜单。

如图:选中Marco=>选择<end of menu>=>Insert

Tips:可以在Command中,输入Si_Scan_快速找到这几个命令

//中文版本添加界面如图:

Ø Step4:设置Jump按键

选择Options/Key Assignment(中文版本为:选项,菜单关联),找到Macro宏:

Si__Key_Assign (设置Jump键,用于弹出错误List),如图

//注:此快捷键必须设置为Ctrl+Alt+Shift+J。

Tip:在SI右上角Work目录出现对应的Scan配置项即表示配置成功!

全部配置只需要配置一次既可以在SI全部项目中使用。

3. 使用说明

Ø 打开您的C/C++项目,在Work中有三个菜单项

Si_Scan_Current_Project (扫描整个项目)

Si_Scan_Current_File (扫描打开的一个文件。多个文件打开时,默认扫描激活窗体文件。)

Si_Scan _Config (扫描规则配置)

点击Si_Scan_Current_Project / Si_Scan_Current_File 启动扫描后,结果如下。

qoc_samples示例项目扫描结果:

可以通过 双击.或者右键 直接在SourceInsight中打开源代码,定位到指定报错行。

点击右键,可以对误报错误进行屏蔽(该文件所有md5相同的错误都将一起被屏蔽)

点击右键,可以切换报错list和屏蔽list。

【注1】SourceInsight的项目工程路径可能和代码路径不一致。

当您的某项工程进行全量扫描时,添加代码扫描的文件夹

【注2】

扫描工程和SourceInsight完全异步,不影响您的正常使用SourceInsight,启动扫 描后,等待结果即可

Ø  扫描配置自定义配置:

点击Si_Scan _Config,弹出规则自定义窗体,直接进行配置:

详细可以在Si_Scan _Config配置对话框中查阅,如图:

基于Source Insight_Scan的C/C++静态代码检查工具安装说明的更多相关文章

  1. Python静态代码检查工具Flake8

    简介 Flake8 是由Python官方发布的一款辅助检测Python代码是否规范的工具,相对于目前热度比较高的Pylint来说,Flake8检查规则灵活,支持集成额外插件,扩展性强.Flake8是对 ...

  2. [原创]Java静态代码检查工具介绍

    [原创]Java静态代码检查工具介绍 一  什么是静态代码检查? 静态代码分析是指无需运行被测代码,仅通过分析或检查源程序的语法.结构.过程.接口等来检查程序的正确性,找出代码隐藏的错误和缺陷,如参数 ...

  3. 静态代码检查工具 cppcheck 的使用

      CppCheck是一个C/C++代码缺陷静态检查工具.不同于C/C++编译器及其它分析工具,CppCheck只检查编译器检查不出来的bug,不检查语法错误.所谓静态代码检查就是使用一个工具检查我们 ...

  4. 静态代码检查工具 cppcheck 的使用(可分别集成到VS和QT Creator里)

    CppCheck是一个C/C++代码缺陷静态检查工具.不同于C/C++编译器及其它分析工具,CppCheck只检查编译器检查不出来的bug,不检查语法错误.所谓静态代码检查就是使用一个工具检查我们写的 ...

  5. C#静态代码检查工具StyleCode

    C#静态代码检查工具StyleCode -- 初探 最近我们Advent Data Service (ADS) 在项目上需要按照代码规范进行代码的编写工作,以方便将来代码的阅读与维护. 但是人工检查起 ...

  6. PC-lint 简明教程(C/C++静态代码检查工具)

    前言 PC-lint是一款小而强大的C/C++静态代码检查工具,它可以检查未初始化变量,数组越界,空指针等编译器很难发现的潜在错误.在很多专业的软件公司如Microsoft,PC-Lint检查无错误无 ...

  7. 静态代码检查工具-PMD初学者入门篇

    前言: PMD是一款静态代码分析工具,它能够自动检测各种潜在缺陷以及不安全或未优化的代码. PMD更多地是集中在预先检测缺陷上,它提供了高度可配置的丰富规则集,用户可以方便配置对待特定项目使用那些规则 ...

  8. Docker+Jenkins持续集成环境(3)集成PMD、FindBugs、Checkstyle静态代码检查工具并邮件发送检查结果

    为了规范代码,我们一般会集成静态代码检测工具,比如PMD.FindBugs.Checkstyle,那么Jenkins如何集成这些检查工具,并把检查结果放到构建邮件里呢? 今天做了调研和实现,过程如下 ...

  9. 静态代码检查工具-PMD刚開始学习的人入门篇

    前言: PMD是一款静态代码分析工具.它能够自己主动检測各种潜在缺陷以及不安全或未优化的代码. PMD很多其它地是集中在预先检測缺陷上.它提供了高度可配置的丰富规则集,用户能够方便配置对待特定项目使用 ...

随机推荐

  1. 【Java】《Java程序设计基础教程》第四章学习

    4.1 类的封装 封装指的是将东西包装在一起,然后以新的完整形式呈现.包含两个意义: 1). 把对象的全部属性和方法结合在一起,形成一个不可分割的独立单位(即对象). 2). 信息隐藏,即尽可能隐藏对 ...

  2. postgresql —— 数组类型

    创建数组 CREATE TABLE sal_emp ( name text, pay_by_quarter integer[] --还可以定义为integer[4]或integer ARRAY[4] ...

  3. 工作中 99% 能用到的 Git 命令

    分支操作 暂存操作 回退操作 标签操作 常规操作 git创建项目仓库 忽略已加入到版本库中的文件 取消忽略文件 拉取.上传免密码. 分支操作 git branch 创建分支 git branch -b ...

  4. 十二.Protobuf3编码

    本文档描述了协议缓冲消息的二进制格式.在应用程序中使用Protocol Buffer不需要理解这一点,但是了解不同的Protocol Buffer格式如何影响编码消息的大小会非常有用. 一条简单的信息 ...

  5. python 杂记20191102

    上下文管理器: def __exit__(self, exc_type, exc_val, exc_tb):若exc_tb不是空,则说明有异常返回值只能是true或false,若是false,则会把之 ...

  6. stm32的hal之串口库函数总结复习

    1.串口的使用方法 在hal库中,有三个串口发送的函数 a.HAL_StatusTypeDef HAL_UART_Transmit_DMA(UART_HandleTypeDef *huart, uin ...

  7. SpringBoot学习(四)开发web应用

    Spring Boot非常适合web应用程序开发.可以使用嵌入式Tomcat.Jetty.Undertow或Netty创建自包含的HTTP服务器.大多数web应用程序使用spring-boot-sta ...

  8. Hive 数据类型与文件格式

    一.基本数据类型 1.基本数据类型 Tinyint  1byte有符号整数  比如20 Smalint 2byte有符号整数 比如20 Int          4byte有符号整数 比如20 Big ...

  9. Problem 3 二维差分

    $des$ 考虑一个 n ∗ n 的矩阵 A,初始所有元素均为 0.执行 q 次如下形式的操作: 给定 4 个整数 r,c,l,s, 对于每个满足 x ∈ [r,r+l), y ∈ [c,x−r+c] ...

  10. 《挑战30天C++入门极限》C++的iostream标准库介绍(3)

        C++的iostream标准库介绍(3) C语言提供了格式化输入输出的方法,C++也同样,但是C++的控制符使用起来更为简单方便,在c++下有两中方法控制格式化输入输出. 1.有流对象的成员函 ...