首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >比较静态分析报告时处理代码移动

比较静态分析报告时处理代码移动
EN

Stack Overflow用户
提问于 2016-12-17 01:26:20
回答 2查看 99关注 0票数 1

当我在我的代码库上运行一个静态分析工具时,我得到了如下结果:

代码语言:javascript
运行
复制
...
arch/powerpc/kernel/time.c:102:5: warning: symbol 'decrementer_max' was not declared. Should it be static?
arch/powerpc/kernel/time.c:138:1: warning: symbol 'rtc_lock' was not declared. Should it be static?
arch/powerpc/kernel/time.c:361:37: warning: implicit cast to nocast type
...

我想跟踪警告的数量和它们在代码中的位置,因为人们正在进行更改。

我可以只运行静态分析的结果,但是如果有人在第50行的time.c中插入一些代码,上面的警告就会移动,因为行号已经改变了,diff会告诉我它们已经改变了。

我应该如何以一种处理文件中代码移动的方式来比较它们呢?

谷歌搜索“智能差异”等等并不有效:它们大多是智能代码差异,而不是智能日志差异。像Greylog或Kibana这样的日志分析工具看起来也不太合适,它更适合于不同的和更一般的分析,而不是针对这一相当具体的任务。

有什么明显的东西我错过了吗?或者,这是我应该期望自己编写工具的问题吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-01-04 21:58:23

我做了一个稍微简单一些的设置--就像@ajd建议的那样,解析消息,并进行行号不敏感的匹配。

代码在https://github.com/daxtens/smart-sparse-diff

票数 0
EN

Stack Overflow用户

发布于 2016-12-17 17:12:16

您可以维护代码和错误的合并:在对应的代码行之后插入每个错误消息(减去其行号)。然后,如果有人在第50行插入代码,则(更新的)合并将不会在后面的错误点附近有差异。当然,它在第50行会有差异,您可能感兴趣,也可能不感兴趣。如果您愿意,您可以忽略不涉及错误消息的diff-块(在每个插入的错误消息中都需要一些不同的标记)。

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

https://stackoverflow.com/questions/41194530

复制
相关文章

相似问题

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