首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PC-Lint (由Gimpel开发)如何跨越多个模块?

PC-Lint (由Gimpel开发)如何跨越多个模块?
EN

Stack Overflow用户
提问于 2012-10-29 17:16:19
回答 2查看 2.4K关注 0票数 3

我在一个C代码库上使用Gimpel的PC-Lintv8.00,希望了解它是如何遍历模块的。PC-lint手册只说PC-Lint“跨越多个模块”。它是如何做到这一点的?例如,它是否从一个模块开始,并将所有相关的包含文件和源文件合并到一大段代码中进行分析?为了理解程序流,它的搜索深度有多深?

在第二个相关的问题中,我有一个用例,在这个用例中,一次从代码库中插入一个C模块对我来说是有益的,而不是将长长列表中的每个C模块都提供给PC-Lint。但是,如果我只提供了一个C模块,它会自动找到它所依赖的其他C模块,并使用这些模块来理解指定C模块的程序流程吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-10-30 23:27:23

当PC Lint解析您的源文件时,它会创建某种类型的运行时数据库,注意全局变量、外部声明等。当它处理完所有编译单元(包含所有包含文件的C文件,递归地)时,它会执行链接器所做的工作来生成输出,但它不是生成代码,而是报告某些类型的错误,例如:尚未使用的外部声明、未使用的原型没有实现、未使用的全局函数。这些问题并不总是由链接器报告的,因为代码生成的可能性很大:这些项从未在任何地方使用过!

搜索深度可能会受到选项-passes的影响,该选项以执行时间为代价实现了更好的值跟踪。请参阅PDF手册中的第10.2.2.4节(适用于版本9.x)。

对于您的第二个问题,否,如果您只在Lint命令行上提供一个(或几个)源(C)文件名,则PC Lint将仅处理该文件-并且所有包括递归使用的文件。您可能希望使用“单元结帐”的选项-u来告诉PC Lint它只处理整个项目的一部分。

票数 4
EN

Stack Overflow用户

发布于 2017-03-06 09:07:02

我认为原则上你是在问LINT对象模块,请参阅Lint手册PDF的第9章。使用lint -u a1.c -oo处理a1.lob,然后可以再次使用lint *.lob将其链接在一起,以产生模块间消息。

你还问了一个相关的、具体的问题( Any tips for speeding up static analysis tool PC-Lint? Any experiences using .LOB files?),但我不确定我是否理解你对“你说它对脱棉时间有多大的影响?”的担忧,因为我会说这要视情况而定。你现在的打线时间/速度是多少?你几年前发的帖子,在一台新机器上运行作业怎么样,新的cpu?KR

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13118704

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档