PGRelief使用指南2014(windows版)

1 PGRelief的安装 

硬件方面:CPUIntel系列的在PIII 1G或者以上即可;SPARC的在300MHZ以上的

即可。内存:推荐为1G以上内存。 

软件方面:目前GUI版本的PgRelief可以运行在如下软件平台: 

Windows2000/XP 日文版本 

Redhat Linux 7.3/9.0 日文版本 

Solaris 7/8/9 日文版 

2 PGRelief界面版的使用 

使用PGRelief进行静态分析的过程基本分为四步:创建分析项目配置分析选项、进行分析、查看分析结果 

2.1 创建分析项目

创建新项目 点击主文件->新建项目

设置项目信息 

包括如下内容: 

设置项目名 

设置项目文件存放路径 

说明项目概要信息 

选择分析对象代码 选择要对哪些源代码进行解析。目前PgRelief只支持对C/C++代码的检查)

2.2 配置分析选项

配置分析选项是整个分析过程中比较困难和麻烦的一步,只有配置正确,才能使PGRelief正确分析代码。

 

 

其中,必须要设置编译、宏定义、头文件路径。

2.2.1 设置编译器 

        由于不同的编译器以及不同的操作系统对 C/C++语言中的一些细节行为的处理是不同

的,因此必须根据被分析代码原先的开发环境(操作系统和编译器),在PGRelief中选择相

应的编译器选项。 

 

 

2.2.2宏设置

在这里可以定义或者取消定义一些宏,如下图所示: 

 

 

一般而言这里是不需要特别进行设置的,但是如果在编译程序时定义了一些

影响到程序编译的重要的宏,则需要在这里加以定义,如在linuxmakefile

里面定义的宏。

 

2.2.3标准头文件和用户自定义头文件

 

 

用户自定义头文件 :用户头文件目录的设定,是需要用户自己手动添加:当前解析的cpp 或者c 文件,所要用到的所有的用户自定义的头文件的路径。注意,不能有遗漏。

标准头文件 :标准头文件目录的设定类似于用户头文件目录的设定,是需要用户自己手动添加:当前

解析的cpp 或者c 文件,所要用到的所有的标准库的头文件的路径。注意,不能有遗漏,并且要有先后次序。

2.2.4 其它

  除了以上三项是必须之外,剩下的选项是可选的。用户可以根据自身的要求,并结合帮助

文档,进行更加详细的,符合自己要求的设置。

2.3 进行分析

分析的步骤 

在完成对分析选项的配置后,就可以开始进行解析了。对一个项目的解析包括两个阶段: 

单文件分析(在这个阶段会逐个对项目中的每个文件进行分析);文件间分析(在所有文件的单文件分析都完成的情况下,将所有文件的全局信息连接起来进行分析)

分析的方式 

用户可以选择多种方式进行解析: 

全体解析:对当前项目下所有文件进行解析,包括单文件分析和文件间分析 

选择解析:对选定的一个或者多个文件进行解析,此时仅仅进行单文件分析 

差分解析:对项目中所有还没有分析的文件进行分析,并最后执行文件间分析。

分析错误的解决 

一般来说,文件分析中断主要是由头文件找不到或者源文件不符合C/C++标准导致的。根据

我们的经验,总结了以下几种错误情况: 

 

 

中断 

中断原 

解决方 

头文件 

忘记添加头文件 

添加头文件 

文件中以 #include <****.h> 格式包

含用户编写的头文件 

根据头文件被引用的格式,应该把该头文件添加到标准头文件中 

头文件是以相对路径形式包含的,如

#include "****.h" 

 系统把设置的头文件路径做为当前路径,

需要重新设置头文件路径 

由于头文件配置错误引起的中断,需要重新配置头文件

2.3.4 其它解析操作 

保存解析信息参见下图: 

 

 

 

 

 

2.4 查看分析结果

可以通过以下2种方式查看指摘信息:根据指摘号来查看指摘信息根据指摘出现的文件来查看指摘信息。 

其它操作: 

查看指摘的源文件处:选中一条指摘信息 --> 点击主菜单打开pgr浏览,系统会自动定位到指摘的位置 

3 PGRelief命令行的使用

         3.1 配置分析选项

3.1.1设置编译器

-K    

         指定编译器。

         用法:

                   pgr -K GNU/GCC3 a.cc

                  [支持的编译器一览]

公司

编译器

[DIAB DATA Company]

DIABDATA/DCCANSI DIABDATA/DCCKANDRDIABDATA/DCCSTRICTDIABDATA/DCC

[FUJITSU Products

FUJITSU/FCC401FUJITSU/FCC401CFUJITSU/FCC401FUJITSU/SOFTUNEF2MC16B

FUJITSU/SOFTUNEFRBFUJITSU/SOFTUNEFR

[GNU Products]

GNU/GCCGNU/GCC3GNU/GCC3_C90GNU/GCC4GNU/GCC4_C++03GNU/GCC3_C90

[Microsoft  Visual  C++ Compiler]

MS/VC1MS/VC4MFCMS/VC4MS/VC42MS/VC42MFCMS/VC5MS/VC5MFCMS/VC6MS/VC6MFCMS/VC6WIN64MS/VC2003MS/VC2003MFCMS/VC2005MS/VC2005MFC

MS/VC2008MS/VC2008MFCMS/VC2010MS/VC2010MFCMS/VC2010CLR

[Mentor Graphics Japan Co.Ltd. Products]

MGJ/MRIPCMGJ/MRISUN

[HITACHI Products]

HITACHI/SHHITACHI/H8

[RENESAS company]

RENESAS/78K0RRENESAS/740RENESAS/7770RENESAS/H8——300RENESAS/H8SRENESAS/M16C

RENESAS/M16C80RENESAS/M32CRENESAS/M32RRENESAS/RX\RENESAS/superH

Sun Microsystems

SUN/SPARC3SUN/SPARC4SUN/SPARC4CSUN/SPARC4SSUN/SPARC5SUN/SPARC5CSUN/SPARC5SSUN/SPARC42SUN/SPARC42CSUN/SPARC42SSUN/SPARC201SUN/SPARC301

SUN/SPARC301CSUN/SPARC301S

NFC

NFC/78K0NFC/78K0SNFC/78K4NFC/V850

 

3

 

猜你喜欢

转载自mycenter.iteye.com/blog/2173106