【KEIL-MDK】系列——如何使用PC-Lint代码检查工具

系列文章目录
01.【KEIL-MDK】系列——主题配色



前言

当我们在做一些代码编辑工作时,经常会因为不小心粗心大意而造成一些不容易发现的错误(潜意识认为没问题、编译器编译没报错(一些除了语法等外更其他问题)),至此有专门的 代码检测工具 ,尽可能的为我们指出错误。


本文将介绍如何安装和配置PC-Lint代码检查工具以及如何将PC-Lint与常见的代码编辑软件集成。

一、PC-Lint 是什么?

PC-Lint 是 GIMPEL 公司针对于C/C++开发的一款 静态代码检测工具
静态代码检查:即代码未运行前,编写好后 进行检查

C/C++语言的语法拥有其它语言所没有的灵活性,这种灵活性带来了代码效率的提升,但相应增加了代码中存在隐患的可能性。

静态代码检查工具 PC-Lint 它能够发现代码中潜在的错误,比如 数组访问越界、内存泄漏、越界、使用未初始化变量等。

一句话概括: PC-Lint是 更加严格规范的编译器

二、在 KEIL-MDK 中集成 PC-Lint 工具

1. 安装 PC-Lint 工具

next next安装即可
注:
在这里插入图片描述
这个选项是 创建相关配置 我们不需要(keil-mdk中集成了相关配置文件)

2. 打开 KEIL-MDK 进行简单设置

安装完PC-Lint后在KEIL 直接可以看到设置选项:

1.选择 菜单 TOOLS——> Set up PC-Lint
在这里插入图片描述
2.在弹出的界面中 进行相应配置
在这里插入图片描述
最后一栏 pc lint 命令参数可以不用填 后需介绍
这样配置完 就可以使用啦 一些细节后续介绍

三、使用 PC-Lint 工具

在这里插入图片描述
在这里插入图片描述

四、PC-Lint 检查结果分析

一个编译器检测 0错误0警告的工程

在我们这样设置下 pc-lint 会检测出一大堆错误 如图所示
错误很多截取了一部分
在这里插入图片描述
可以看到明显的错误说明 红色标出的说没定义 我们添加头文件路径试试

在这里插入图片描述
还是会报同样的错误 可能是我工程文件目录路径太长 及存在中文的缘故吧
这个问题我们先不纠结了 可以看出要用这个工具要对 PC-Lint 的检测规则 命令参数 配置规则有一定了解


五、PC-Lint 一些规则介绍

错误号类别

PC-Lint 为大部分错误都分配了一个错误号,编号小于1000的错误号是分配给C 语言的,编号大于1000的错误号则用来说明C++的错误
在这里插入图片描述
每个错误号 都有具体含义 具体看查后面列出的文档

PC-Lint 提供了和许多编译器类似的告警级别设置选项-wLevel,它的告警级别分为以下几个级别:
在这里插入图片描述
例子:配置只报告致命的错误
在这里插入图片描述
可以看到错误信息就剩这些了
在这里插入图片描述

屏蔽某类错误信息

在这里插入图片描述
例子:-e72 屏蔽错误码72的错误 我这里试啦没用不知道为什么

结果输出指定目录文件

在这里插入图片描述
举例:-os(./result.txt) 输出到当前工程目录下
在这里插入图片描述

还有很多规则用法 具体的就去查看

具体信息查看 安装路径下的 《 PC-lint.pdf 》


六、PC-Lint 使用举例

检查一些编译器无法检查出的错误

访问越界

	
    //编译器本身编译 0错误 0警告
    typedef struct data {
        int a;
        int b;
    } data_t;

    typedef struct sum {
        data_t s;
        int c;
    } sum_t;

    data_t data1;
    data1.a = 1;
    data1.b = 2;

    sum_t sum1;
    sum1.s = data1;
    sum1.c = 3;

    memset(&sum1, 0, 100);
    
CP-Lint 检查后结果分析:
"*** LINT: ..\source\main.c(153) Warning 419: Apparent data overrun for function 'memset()', argument 3 (size=100) exceeds argument 1 (size=12) [Reference: file..\source\main.c: line 153] [MISRA 2012 Rule 1.3, required   
"警告419:函数“memset()”的参数3(大小=100)明显超出参数1(大小=12[参考:文件..\source\main。c:153][MISRA 2012规则1.3,必填]

还有很多详细说明 看查pc lint文档


PC-Lint 工具下载地址

百度网盘 提取码:7777
CSDN下载


总结

PC-Lint代码检查工具的作用还有不容小觑的,但是想要用好它,还得去看查PC-Lint文档去学习一些规则。

版权声明:本文为CSDN博主「揪住小尾巴」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_43822014/article/details/122387168

生成海报
点赞 0

揪住小尾巴

我还没有学会写个人说明!

暂无评论

发表评论

相关推荐

【KEIL-MDK】系列——如何使用PC-Lint代码检查工具

系列文章目录 01.【KEIL-MDK】系列——主题配色 前言 当我们在做一些代码编辑工作时,经常会因为不小心粗心大意而造成一些不容易发现的错误(潜意识认为没问题、编译器编译没报错(一些除了语法等外更其他问题)),

74HC138译码器的原理和使用

前言 译码器就是将每个输入的二进制代码译成对应的输出高低电平信号,和编码器互为逆过程。 百度百科 74HC138是一款高速CMOS器件,74HC138引脚兼容低功耗肖特基TTL(LSTTL&#xf

KEIL5安装STM32的芯片支持包

第一步: 找到芯片支持包的网址 https://www.keil.com/dd2/Pack/ 第二步:找到STM32系列的芯片支持包 第三步:下载完后得到 将该文件加入到KEIL5的安装目录中 接