具体内容参看文件《CppCheck和PreFast对Cplusplus代码静态分析测试.zip》

C++测试源代码main.cpp

#define NULL 0

#include <stdio.h>

#include <string.h>

// 没有初始化

void defect1()

{

int a;

int b;

b = a;

}

// 空指针取值

void defect2( int b, int c)

{

int * p = NULL;

int a = 1 ;

if (b == 1 )

{

if (c == 1 )

{

p = & a;

}

else

{

}

}

else

{

if (c == 1 )

{

}

else

{

p = & a;

}

}

* p;

return ;

}

//可能错误的运算符优先级

void defect3()

{

int a = 1 ;

int b = 1 ;

int c = 1 ;

if (a & b == c)

return ;

}

//可能的buffer overrun

void defect4()

{

char buf[ 100 ];

char buf2[ 200 ];

int i = 100 ;

sprintf(buf, " hello world %d " , i);

strcpy(buf, buf2);

}

// 可能的无穷循环

void defect5()

{

signed char i;

for (i = 100 ; i >= 0 ; i ++ ) {

;

}

}

// 格式字符串错误

void defect6()

{

char buff[ 5 ];

sprintf(buff, " %s %s " , " a " );

}

//=和==误用

void defect7()

{

int a = 1 ;

if (a = 2 )

return ;

}

// 逻辑运算问题

void defect8()

{

int x;

if ( 0 && x ++ ) {

;

}

}

void main()

{

}

1、使用PreFast前后对比

图1取消C/C++代码分析

图2不使用PreFast时VS2010输出的警告

图3 启用C/C++代码分析

图4 使用PreFast时VS2010输出的警告

2、Cppcheck对main.cpp源代码的分析结果

图5 Cppcheck的分析结果

C++静态代码分析工具对比cppCheck与PreFast的更多相关文章

  1. 常用 Java 静态代码分析工具的分析与比较

    常用 Java 静态代码分析工具的分析与比较 简介: 本文首先介绍了静态代码分析的基 本概念及主要技术,随后分别介绍了现有 4 种主流 Java 静态代码分析工具 (Checkstyle,FindBu ...

  2. [转载] 常用 Java 静态代码分析工具的分析与比较

    转载自http://www.oschina.net/question/129540_23043 简介: 本文首先介绍了静态代码分析的基本概念及主要技术,随后分别介绍了现有 4 种主流 Java 静态代 ...

  3. 【转载】常用 Java 静态代码分析工具的分析与比较

    摘自:http://www.oschina.net/question/129540_23043常用 Java 静态代码分析工具的分析与比较 简介: 本文首先介绍了静态代码分析的基本概念及主要技术,随后 ...

  4. 常用Java静态代码分析工具的分析与比较

    给国产静态代码检测工具Pinpoint打Call! 简介 本文首先介绍了静态代码分析的基本概念及主要技术,随后分别介绍了4种现有的主流Java静态代码分析工具 (Checkstyle,FindBugs ...

  5. C++静态代码分析工具推荐——PVS-Studio

    长假归来,最近一直没更新,节前本来就想写这篇了,一直到今天才有时间. 关于静态代码分析在维基百科上可以查到很详细的介绍:https://en.wikipedia.org/wiki/List_of_to ...

  6. 来试试这个来自静态代码分析工具PVS Studio提供C++的小测验吧

    博客搬到了fresky.github.io - Dawei XU,请各位看官挪步.最新的一篇是:来试试这个来自静态代码分析工具PVS Studio提供C++的小测验吧.

  7. java静态代码分析工具infer

    infer是一个静态代码分析工具,探测bugs. 主要支持Java.C/C++ 安装:brew install infer 在线展示:https://codeboard.io/projects/115 ...

  8. Https与Http,SSL,DevOps, 静态代码分析工具,RFID, SSH, 非对称加密算法(使用最广泛的一种是RSA), 数字签名, 数字证书

    在URL前加https://前缀表明是用SSL加密的. 你的电脑与服务器之间收发的信息传输将更加安全. Web服务器启用SSL需要获得一个服务器证书并将该证书与要使用SSL的服务器绑定. http和h ...

  9. Eclipse插件(导出UML图,打开文件资源管理器插件,静态代码分析工具PMD,在eclipse上安装插件)

    目录 能够导出UML图的Eclipse插件 打开文件资源管理器插件 Java静态代码分析工具PMD 如何在eclipse上安装插件 JProfiler性能分析工具 从更新站点安装EclEmma 能够导 ...

随机推荐

  1. List对象排序通用方法

    import java.util.Collections; import java.util.Comparator; import java.util.List; import java.lang.r ...

  2. PHPStorm Xdebug配置

    下载PHSTORM https://download.jetbrains.com/webide/PhpStorm-2016.1.2.exe http://idea.lanyus.com/查找授权服务器 ...

  3. 【转】WordPress转PHPCMS策略-数据库完美转换

    来源:http://www.sjyhome.com/php/wp-to-pc-sql.html WordPress的访问速度不可恭维?那就试试能够生成纯静态的PHPCMS,保证能够让你的网页访问速度有 ...

  4. 第五章第二例题关于Vector(LRJ)

    vector(动态数组)(粘) 一.概述 vector是C++标准模板库中的部分内容,它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库.vector是一个容器,它能够存放各种类型的对象,简 ...

  5. Gunicorn 问题

    Does Gunicorn suffer from the thundering herd problem? The thundering herd problem occurs when many ...

  6. WEB前端知识在乱花渐欲迷人眼的当下,如何分清主次和学习优先级呢?

    从正美的吐槽开始,我回了下,说对盲目跟风的大众失去信心了.然后一些同学说我固步自封,另一些同学估计想说倚老卖老啥的.我想说清楚一点,我从 未停止过学习,只是对知识的重要程度和精力分配有自己的观点.具体 ...

  7. [原创]使用java批量修改文件编码(ANSI-->UTF-8)

    从网上下载的项目,有时候.java文件的编码是ANSI.导入到自己的MyEclipse后,查看项目源码的时候,总是乱码. 一个个.java去修改的话, 既麻烦又不现实.所以写了下面这个工具类,进行批量 ...

  8. 使用EasyBCD完美实现Windows7与Linux双系统

    在Linux横行的时代,不玩Linux简直对不起它的流行,但又不能不用Windows,还要干活,还要工作啊,最重要的是:还要娱乐啊!! 废话不多说,直接进入主题! 1.下载EasyBCD,这个软件可以 ...

  9. eclipse中整合springMvc,velocity和sitemesh

    1.项目所需要jar包 (有些可能多余) 2.创建UserController   目录如下: package qust.thb.usermanage.controller; import org.s ...

  10. BZOJ 2685: Sgu385 highlander

    Sol 期望DP. \(f[i][j][k]\) 表示已经确定了 \(i\) 个点, 最大环大小为 \(j\) ,个数为 \(k\) 的方案数. 转移非常复杂,因为细节特别多. \(f[i][j][1 ...