大家好,最近很多小伙伴想了解静态代码检查的相关信息,今天小编专门整理了与静态代码检查相关的一些内容,让我们一起看看吧。
本文目录一览:
- 1、代码静态检查实现原理
- 2、C++静态代码检查工具?
代码静态检查实现原理
静态代码分析原理分为两种:分析源代码编译后的中间文件(如Java的字节码);分析源文件。主要分析技术如下:
缺陷模式匹配
事先从代码分析经验中收集足够多的共性缺陷模式,将待分析代码与已有的共性缺陷模式进行匹配,从而完成软件安全分析。优点:简单方便;缺点:需要内置足够多的缺陷模式,容易产生误报。
类型推断/类型推断
类型推断技术是指通过对代码中运算对象类型进行推理,从而保证代码中每条语句都针对正确的类型执行。
模型检查
建立于有限状态自动机的概念基础上。将每条语句产生的影响抽象为有限状态自动机的一个状态,再通过分析有限状态机达到分析代码目的。
校验程序并发等时序特性。
数据流分析
从程序代码中收集程序语义信息,抽象成控制流图,可以通过控制流图,不必真实的运行程序,可以分析发现程序运行时的行为。
C++静态代码检查工具?
PC Lint被称为C / c++的PC - Lint / FlexeLint。它是由GIMPEL软件开发的C / c++静态代码检测工具,由许多大型软件公司的程序员使用。
C++
我们知道,许多用户从事开发C / c++编程语言,其语法没有其他语言的灵活性,这种灵活性使促进代码的效率,但由于C / c++编译器不是强制性的类型检查,不做任何边境检查,这就增加了代码中存在的隐患的可能性。PC Lint,这个软件的重点是对代码的逻辑分析,它可以在潜在错误的代码中找到,比如数组访问跨界、内存泄漏、使用未初始化的变量等,用于检测编译器无法检测到的bug通常类型。
内容
PC线头是静态代码检测工具,可以说,PC -线头更严格的编译器,不仅可以像普通编译器检查一般的语法错误,也可以看看那些尽管语法要求完全,但是可能是潜在的,不容易找到错误。
PC的棉絮不仅可以检测单个文件,也可以从整个项目的角度检测问题,因为一个固有的C语言编译器编译,编译器环境中这些问题很难发现,线头和PC的检查当前文件同时还将检查所有相关的文档,可想而知,它将对我们有很大的帮助。
方式
PC lint几乎支持所有流行的编辑器和编译器环境,例如Borland c++从1到5。xx版本,Borland c++构建,GCC,VC,watcomC / c++,insight的来源,intelC / c++,等等,也支持16 /32/ 64平台环境。
所示。支持Scott Meyes的经典(有效的c++ /更有效的c++),各种提高效率和防止错误的方法。
以上静态代码检查的介绍就聊到这里,希望能对你有所帮助。