我正在使用PC-Lint作为我的C ++项目。 有没有办法在默认情况下关闭所有错误和警告消息,以便我可以明确地重新引入所需的消息?
我已经阅读了PC-Lint手册中标题为“错误抑制选项”的章节,我能找到的最好的方法是将wLevel设置为-w0无消息(致命错误除外)
答案 0 :(得分:2)
是的,您可以使用-e*
或-w0
。但是,该手册真实地指出(第16章与Lint一起生活):
不要简单地用某些东西压制所有警告 比如:-e *或-w0因为这可以掩盖硬错误并使后续诊断变得非常困难。
所以,是的,如果您的代码基本上已清理,并且您想查看某组消息的最新更改,则可以使用它。但是,如果您想开始清理代码,并且由于默认警告级别-w3
而淹没了邮件,我建议您开始使用-w1
并解决所有问题;在第一级给出的大多数警告/错误表明找到所有头文件,正确设置了隐式宏,和/或以足够精确的方式模仿正常使用的编译器时出现问题。
与往常一样,我对自己的作品犹豫不决,但如果你愿意,请看看我的" How to wield PC Lint" PDF,我已经记录了处理PC Lint初始部署的详细说明,并处理了您可能被埋没的许多警告/错误/信息/注释。
答案 1 :(得分:1)
当我开始将PC-Lint引入新项目时,我做了以下工作:
正如Johan Bezem所建议的,对整个事情进行了-w1
等级检查。这实际上没有发现任何新问题,但检查您的程序在语法上是否有效并发现任何配置问题。假设你的项目已经编译,没什么大不了的。
使用-w2
级别再次运行测试。这发现了53,000个问题,这一问题有点需要解决。
选择一个典型的错误文件,然后禁止出现任何错误
不相关或非紧急(例如error 525: (Warning -- Negative indentation from line xxx)
将-e525
添加到命令行或配置文件中,直到找到一个看起来很严重的文件。
就我而言,这是
error 442: (Warning -- for clause irregularity: testing direction inconsistent with increment direction)
,即'for'循环
看起来它应该算起来实际上是在计算
下来。
将测试级别重置为-w1
,但在此案例中按编号-w1 +e442
添加了严重问题。在整个项目中重新运行它,然后修复该问题的所有实例。
返回第2阶段,然后重试。
这种解决实际问题和抑制可能的错误警报的组合很快就可以控制你的数字。
随着时间的推移,一切都会变得更好我们还会实施一个脚本,对创建或修改的任何文件进行彻底(完整-w2
或-w3
)检查。
我还发现工具LintProject非常有用,因为它可以一次完成整个Visual Studio解决方案,包含错误数量和最严重违规者的表格!