嵌入式软件开发杂谈:静态分析工具Pclint与source insight的整合

Posted Stoneshen1211

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了嵌入式软件开发杂谈:静态分析工具Pclint与source insight的整合相关的知识,希望对你有一定的参考价值。

文章目录

1 安装

1.1 安装

点击安装包中的pclint9setup.exe后, 直接进行安装
注意:安装路径不要有中文和空格

1.2 配置

点击安装路径中的CONFIG.exe,

选择如下:









2 集成到SI中

a)打开Source Insight软件 。
b)从Tools菜单中选择“Custom Commands”命令项。点击Add…。
c)在Name栏中输入“Pc_Lint”这个名字可以随便起。
在Run栏中输入“C:\\lint\\lint-nt.exe C:\\lint\\dv.lnt %f”其中C:\\Lint是你PC-LINT的安装目录。 或者输入以下指令
C:\\lint\\lint-nt -u -iC:\\lint std env-si %f

d)在Output栏中选择“Iconic Window”、“Capture Output”。
e)在Control栏中选择“Save Files First”、“Wait Until Done”。
f)在Source Links in Output栏中选择“Parse Links in Output”、“File,then Line”。
g)在Pattern栏中输入“([ ]*) ([0-9]+)”。
h)点Close键加入该命令。如下图:

i)点击Option—>Menu…键,选择“Custom Cmd: PC-LINT”,选择位置后点Insert键。

j)点击Keys…键,选择“Custom Cmd: PC-LINT”,点击Assign New Key…键,在弹出界面按F11键。

k)完成后点OK键,在Option菜单下出现“PC-LINT F11”菜单,点击执行。

3 生成头文件

touch empty.c
gcc -E -dM empty.c >lint_cmac.h
g++ -E -dM empty.c >lint_cppmac.h
将上述头文件拷贝到安装目录

4 修改配置

在si上运行之后,会提示没有找到对应的头文件之类,则需要将头文件路径写到std.lnt文件中
下面的全部标准头文件是从虚拟机中直接拷贝到PCLINT安装目录中。

-iD:\\lint\\include
-iD:\\lint\\include\\x86_64-linux-gnu
-iD:\\lint\\include\\linux
-iD:\\lint\\include\\c++
-iD:\\lint\\include\\c++\\5
-iD:\\lint\\include\\c++\\5\\tr1
-iD:\\lint\\include\\x86_64-linux-gnu\\c++\\5

另外,在编译过程中可能会提示找不到头文件,就需要我们将头文件路径定义达到std.int文件中

5 告警级别


6 常见错误消除

6.1 告警号40

D:\\lint\\include\\c++\\5\\cstdarg 54 Error 40: Undeclared identifier 'va_list'
         _
  size_t __pad5;

这个问题是标准头文件中的,因此不需要关注,将下面参数写到options.int中

-esym(40, va_list)

D:\\lint\\include\\libio.h 333 Error 40: Undeclared identifier 'size_t'
                                        _
-esym(40, size_t)

			 _IO_va_list);
D:\\lint\\include\\libio.h 462 Error 40: Undeclared identifier '__gnuc_va_list'
-esym(40, __gnuc_va_list)

6.2 告警号 1057

D:\\lint\\include\\libio.h 305 Error 1057: Member '_IO_FILE::size_t' cannot be
used without an object
-esym(1057, _IO_FILE::size_t)

以上是关于嵌入式软件开发杂谈:静态分析工具Pclint与source insight的整合的主要内容,如果未能解决你的问题,请参考以下文章

嵌入式软件开发杂谈:动态分析工具Valgrind的配置使用

嵌入式软件开发杂谈:动态分析工具Valgrind的配置使用

嵌入式软件开发杂谈:动态分析工具Valgrind的配置使用

嵌入式软件开发杂谈:如何查找CPU使用率最高的函数---pref的使用

嵌入式软件开发杂谈:如何查找CPU使用率最高的函数---pref的使用

嵌入式软件开发杂谈:Binutils工具集