请教Linux C代码规范性检测工具有哪些

请教Linux C代码规范性检测工具有哪些,第1张

由Stanford大学的Dawson Engler副教授等研究开发,该静态分析工具允许用户使用一种称作metal的状态机语言编写自定义的时序规则,从而实现了静态分析工具的可扩展性。MC的实际效果非常优秀,号称在Linux内核中找出来数百个安全漏洞。MC目前已经商业化,属于Coverity Inc.2014年被Synopsys收购。目前学术领域比较认可的静态分析工具,其技术处于领先地位。

下载并安装Gprof

首先检查工具是否已经安装在系统上。 为此,只需在终端中运行以下命令即可。

$ gprof

如果您收到以下错误:

$ a.out: No such file or directory

那么这意味着该工具已经安装。 否则可以使用以下命令安装它:

$ apt-get install binutils

Gprof使用

不用说,理解Gprof这个工具的最好方法就是通过一个实际的例子。 所以,我们将从一个C语言程序开始,我们将通过Gprof进行剖析。 这是程序:

//test_gprof.c

#include<stdio.h>

void func4(void)

{

printf("\n Inside func4() \n")

for(int count=0count<=0XFFFFcount++)

}

void func3(void)

{

printf("\n Inside func3() \n")

for(int count=0count<=0XFFFFFFFcount++)

}

1)安装fortify软件。Linux环境下的fortify软件是个绿色安装包,解压就完成安装;

2)拷贝fortify.license文件到fortify根目录;

3)拷贝*.bin文件到fortify目录下的Core/config/rules目录。.bin文件是fortify静态检查所支持的语言文件;

4)拷贝*.xml到Core/config/reports目录;

5)添加foritify/bin路径到系统的PATH环境变量;

按照以上步骤完成安装后,针对具体项目的静态分析步骤如下:

1)使用不是使用cmake,本步骤可以忽略,否则需要进行 *** 作。使用如下命令重新定义CXX变量:

export CXX="SourceAnalyzer -b xxx c++"

其中,xxx为项目名称。

2)使用make clean命令清除上一次编译结果;

3)使用如下命令编译代码:

Sourceanalyzer -b xxx -debug -Xmx512m touchless make

其中,-Xmx参数指明所使用的内存大小。

为确认该命令是否执行成功,可以使用如下命令进行确认:

Sourceanalyzer -b xxx -show -files

4)使用如下命令进行代码走查:

Sourceanalyzer -b xxx -Xmx512m -debug -scan -f xxx.fpr -disable-source-rendering -Dcom.fortify.sca.FPRDisableMetatable=true

成功 完成代码静态走查后,会后成.fpr结果文件,该文件需要使用配套的另外一款软件来查看结果。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/7380355.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-05
下一篇2023-04-05

发表评论

登录后才能评论

评论列表(0条)

    保存