PC_Lint的使用
PC_Lint介绍
是一种广泛使用的静态代码分析工具,主要用于 C 和 C++ 代码。它通过检查源代码中的潜在问题,如语法错误、逻辑错误、内存泄漏、未初始化变量等,帮助开发人员提高代码质量和可靠性。以下是 PC-Lint 的一些主要特点和功能介绍:
主要功能
- 静态代码分析:
- PC-Lint 通过静态分析(在不运行程序的情况下分析代码)来发现可能的错误和潜在问题。它能够检测出许多编译器无法捕捉的细微问题。
- 跨平台支持:
- PC-Lint 支持多种操作系统,包括 Windows 和 Linux,可以分析各种编译器生成的代码。
- 灵活的配置:
- 允许用户根据项目需求进行广泛的配置,可以自定义警告级别、忽略特定类型的警告、定义新的检查规则等。
- 全面的报告:
- 提供详细的错误和警告报告,帮助开发人员快速定位和修复问题。报告可以输出为多种格式,如文本、XML 等,方便集成到 CI/CD 流程中。
- MISRA 标准支持:
- PC-Lint 支持 MISRA C/C++ 标准,这是一种广泛应用于汽车、航空等高安全性要求领域的编码规范。PC-Lint 能够检查代码是否符合这些标准,并给出相关的改进建议。
PC_Lint工具
环境组成
- (lint\文件夹下)
文件 | 说明 |
---|---|
Lint-nt.exe | Windows下的执行文件 |
Std.lnt | 标准配置文件 |
Options.lnt | 选项配置文件 |
env-xml.lnt | 用于配置 PC-Lint 的输出格式 |
co.lnt | 指定编译器为通用 C 编译器 |
au-misra3.lnt | MISRA C 2012标准 |
- ref.py
此文件为python写的脚本文件,用于在当前路径下生成Lint-nt.exe执行文件的配置参数ref.rsp文件(包含.h文件路径,宏定义,需要静态检测的.c文件路径以及调用其他配置文件)。
- 其中代码需要更改两个位置:
root_dir = r'D:\workspace_ctc_v6.3r1\EBS_FAM' # 将此路径替换为tasking工程的根目录
include_path = r'D:\Program Files\TASKING\TriCore v6.3r1\ctc\include' # 将此路径替换为Tasking编译器的系统.h文件路径
- 在Tasking编译器指定工程项目中添加宏定义
不同编译器可能会定义一系列预定义的宏,这些宏通常用于识别编译器类型、版本以及编译环境 ,可根据不同的编译器进行更改(同时需要在ref.py脚本代码中进行更改)。
-
LIN.BAT
此文件用于运行执行文件Lint-nt.exe,
"%~dp0lint\Lint-nt"
路径可根据需求配置成绝对路径。
"%~dp0lint\Lint-nt" +v @ref.rsp
执行顺序
- 将lint文件夹和LINT.BAT文件放在待检测工程路径下
- 更改ref.py代码中的根路径和系统路径。之后运行ref.py脚本文件,生成ref.rsp配置文件。
工程路径下 - 更改ref.py代码中的根路径和系统路径。之后运行ref.py脚本文件,生成ref.rsp配置文件。
- 运行LINT.BAT,生成LintReport.xml文件(xml格式的输出报告)。