PGRelief使用指南2014(windows版)

1 PGRelief的安装 

硬件方面:CPU:Intel系列的在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宏设置

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

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

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

里面定义的宏。

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/DCCKANDR、DIABDATA/DCCSTRICT、DIABDATA/DCC


[FUJITSU Products


FUJITSU/FCC401、FUJITSU/FCC401C、FUJITSU/FCC401、FUJITSU/SOFTUNEF2MC16B

FUJITSU/SOFTUNEFRB、FUJITSU/SOFTUNEFR


[GNU Products]


GNU/GCC、GNU/GCC3、GNU/GCC3_C90、GNU/GCC4、GNU/GCC4_C++03、GNU/GCC3_C90


[Microsoft  Visual  C++ Compiler]


MS/VC1、MS/VC4MFC、MS/VC4、MS/VC42、MS/VC42MFC、MS/VC5、MS/VC5MFC、MS/VC6、MS/VC6MFC、MS/VC6WIN64、MS/VC2003、MS/VC2003MFC、MS/VC2005、MS/VC2005MFC

MS/VC2008、MS/VC2008MFC、MS/VC2010、MS/VC2010MFC、MS/VC2010CLR


[Mentor Graphics Japan Co.Ltd. Products]


MGJ/MRIPC、MGJ/MRISUN


[HITACHI Products]


HITACHI/SH、HITACHI/H8


[RENESAS company]


RENESAS/78K0R、RENESAS/740、RENESAS/7770、RENESAS/H8——300、RENESAS/H8S、RENESAS/M16C

RENESAS/M16C80、RENESAS/M32C、RENESAS/M32R、RENESAS/RX\ RENESAS/superH


Sun Microsystems


SUN/ SPARC3、SUN/ SPARC4、SUN/SPARC4C、SUN/SPARC4S、SUN/SPARC5、SUN/SPARC5C、SUN/SPARC5S、SUN/SPARC42、SUN/SPARC42C、SUN/SPARC42S、SUN/SPARC201、SUN/SPARC301、

SUN/SPARC301C、SUN/SPARC301S


NFC


NFC/78K0、NFC/78K0S、NFC/78K4、NFC/V850

3.1.2宏设置

-D macro

指定宏

用法:

pgr -D macro a.cc

效果:

相当于,在a.cc开头写了  #define macro 1

-D mac=value

指定宏

用法:(注意mac=value不能有空格,value可以使任意值)

pgr -D mac=value a.cc

-U macro

指定系统宏。

用法:

pgr -U __LINE__ a.cc

选项的参数:

__LINE__, __FILE__, __TIME__, __DATE__, __STDC__等

C++ __cplusplus

C99  _STDC_HOSTED__, __STDC_VERSION__

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

-I

设置自定义头文件的查找路径

用法:

pgr -I path a.cc

注意:path最好是头文件全路径,或是正确的相对路径。是文件夹,别搞错。

-Y

设置标准头文件的查找途径

pgr -Y path a.cc

4 常见问题

4.1 分析错误的解决

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

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


中断


中断原


解决方


找 不 到

头文件


忘记添加头文件


添加头文件


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

含用户编写的头文件


使用 –Y选项设置头文件路径


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

#include "****.h"


使用 –I选项设置当前路径为头文件路径

时间: 2024-08-29 21:21:51

PGRelief使用指南2014(windows版)的相关文章

PGRelief使用指南2014(Linux版)

1 配置分析选项 1.1编译器选择 -K 指定编译器.(只针对此次,内部不修改) 用法: pgr -K GNU/GCC3 a.cc 公司 编译器 [DIAB DATA Company] DIABDATA/DCCANSI .DIABDATA/DCCKANDR.DIABDATA/DCCSTRICT.DIABDATA/DCC [FUJITSU Products FUJITSU/FCC401.FUJITSU/FCC401C.FUJITSU/FCC401.FUJITSU/SOFTUNEF2MC16B FU

[转帖]cocos2d-x 3.0rc开发指南:Windows下Android环境搭建

原文请看:http://blog.csdn.net/linzhengqun/article/details/21663341 鲜红字体请注意:文中红色字体乃是本文博主阳光下的蒲公英添加.红色字体部分造成的问题,本博主一概不负任何责任.其他字体的责任由原文作者负责.(本文博主是不是特别无节操了呢....O(∩_∩)O哈哈哈~) 安装工具 1. 配置JDK JDK下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index.ht

苹果商店应用审核指南(2014年翻译版)

官方文档地址 苹果商店应用审核指南 前言 非常高兴您能付出宝贵的时间和精力来开发iOS应用.成千上万的开发者的经历表明,无论从专业技术还是经济收入上,开发iOS应用都是个有意义的事情,我们将帮助你更快成功,成为其中的一员.这篇App Store Review Guidlines主要是为了协助你弄清楚开发过程中会遇到的一些疑惑,加快你提交应用后的审核过程. 我们认为应用不同于书籍和歌曲,我们不支持这些.如果你要讨论宗教信仰,那么应该去写书.如果你要谈论性,那么写书,或者去写歌,或者去做一个生理卫生

DEEPIN 2014 正式版 试用体验

7月6日深度正式发布 Deepin 2014 操作系统,该系统是基于 Ubuntu 14.04 LTS 的 Linux 发行版,并搭载了多款深度开发的软件,更符合国人使用习惯.由于Deepin 2014 以Compiz作为窗口管理器,Compiz在虚拟机中性能不佳,强烈建议各位将Deepin 2014 直接安装在真实机器上,这样才能真正体验到Deepin 2014的华丽效果.我们官方计划在未来的版本中,使用自己开发的窗口管理器代替Compiz,从而彻底解决这个问题. 需要注意的是自Deepin

可靠的Windows版Redis

副标题: 评论更精彩,教你怎么解决64位Windows版Redis狂占C盘的问题. MS Open Tech 技术团队最近花了很多时间来测试最新构建的Windows版Redis(可在 MS Open Tech Github 仓库下载). 当我们测试计划快要完成时,我们认为应该分享一些振奋人心的结果. 在压力测试的第一阶段,我们让Redis在Windows上进行各种测试,执行时间从1天到16天,以及简单的单master配置,到如下图所示的更复杂的配置,包括1个Master以及4个replicas.

交通银行 Java Socket 服务启动 管理 WINDOWS 版

按照交通银行提供的无界面启动方法试验了很多次,都没有成功,所以自己动手用C# 知识写了一个. 小工具可以判断 交通银行 JAVA SOCKET 服务是否启动,并可以启动/关闭服务 主要代码如下: 判断服务是否启动 引用 :using System.Management; SelectQuery selectQuery = new SelectQuery(“select * from Win32_Process where Name = ‘java.exe’”); object cmdLine =

三 APPIUM GUI讲解(Windows版)

本文本转自:http://www.cnblogs.com/sundalian/p/5629386.html APPIUM GUI讲解(Windows版) Windows版本的APPIUM GUI有以下图标或者按钮: ·Android Settings  - Android设置按钮,所有和安卓设置的参数都在这个里面 ·General Settings – 通用设置按钮 ·Developer Settings – 开发人员设置 ·About – 关于 Inspector – 元素侦测 ·Launch

Java 反编译工具 —— JAD 的下载地址(Windows版/Linux版/Mac OS 版)

Java 反编译工具 —— JAD 的下载地址. 各种版本哦! Windows版,Linux版,Mac OS 版,等等 下载地址: http://varaneckas.com/jad/ Java 反编译工具 -- JAD 的下载地址(Windows版/Linux版/Mac OS 版),布布扣,bubuko.com

项目管理知识体系指南(PMBOOK指南)(第5版) 阅读摘要

1.7.2 项目经理的人际技能 领导力: 团队建设: 激励: 沟通: 影响力: 决策能力: 政治和文化意识: 谈判: 建立信任: 冲突管理: 教练技术: 3.4 规划过程组 在制定项目管理计划和项目文件时,如何让项目的所有干系人积极参与并投入? 3.9 知识领域的作用 十大知识领域:项目整合管理.项目范围管理.项目时间管理.项目成本管理.项目质量管理.项目人力资源管理.项目沟通管理.项目风险管理.项目采购管理.项目干系人管理. 5.4.3.1 范围基准 WBS词典 账户编码标识: 工作描述: 假