PVS-Studio团队和我们的产品为软件质量的发展做出了巨大贡献。 此外,除了显式检测关闭和打开的项目中的错误外,对编译器和其他代码分析工具的开发也有间接的贡献。 我们很高兴有时成为潮流引领者,因此我们决定在我们的博客上为此做些说明。
PVS-Studio是一种静态分析器,用于检测用C,C ++,C#和Java编写的程序的源代码中的错误和潜在漏洞。
为了普及静态代码分析的方法和我们的工具,我们在各种开源
项目的验证中编写了注释。 特别是,我们会不时检查各种编译器。 例如,我们检查并发现了以下项目中的错误:GCC,LLVM,PascalABC.NET,Roslyn。
我们反复注意到一个有趣的事实。 一旦我们检查了LLVM或GCC,在这些编译器中发布一两个版本后,就会出现一些新的诊断程序,旨在识别PVS-Studio在其代码中可能发现的错误:)。 不幸的是,我们没想到会写出日期和与相关创新的链接,因此您必须在这里兑现我们的承诺。 各种C ++编译器借用了我们的一些诊断信息,我们相信这是完全正常,正确和有用的!
除了C ++编译器外,现在还连接了C#分析器以借用诊断程序。 这意味着在PVS-Studio中实现的C#分析器将成为不同的榜样! 意识到这一点非常好。
在这种情况下,我可以实时地解决这种情况。 在2019年8月13日,我们发布了
一篇大型
文章,专门检查.NET Core库(CoreFX)。 除其他外,在本文中,我们描述了与插值字符串的使用相关的错误模式(请参阅
V3138诊断)。 CoreFX开发人员对我们的出版物非常感兴趣,并开始修复我们发现的错误。 并且在8月14日,他们发现了与这些非常内插的行有关的错误:
修复了在跟踪中用于字符串内插的一些丢失的$ s 。
现在有趣的部分。 当天,Roslyn Analyzers项目中出现了一项任务,以实施新的诊断程序“
新规则:缺少$特殊字符#2767的插值字符串 ”,该
字符串与CoreFX中修复的错误相关。
我们很高兴我们的工作对CoreFX开发人员有用,我们的诊断程序成为Roslyn Analyzers开发人员可以效仿的一个例子。 很遗憾,讨论中没有提到PVS-Studio工具。 事实证明,好像他们自己发现了这些错误并提出了自己的诊断程序一样。 当然,如果我们被提及为源,我们会感到受宠若惊。 哦好
我们为什么决定写所有这一切? 我们感到非常高兴,甚至为自己感到骄傲! 根据我们的经验,其他编译器会实施新的诊断程序,从而改善整个开发软件的质量。 我了解到,我们不仅会影响编译器发现错误的能力的发展。 但是,我们很高兴知道我们正在为这一过程做出贡献。
其他工具逐渐学习发现与PVS-Studio相同的错误是否困扰我们? 不行 我们的工具刚刚存在并被出售是因为我们始终领先于编译器。 我们的任务是始终保持领先地位。 意识到我们不断被追赶的事实并不能使我们放松,这对每个人都有益。 除此之外,必须了解PVS-Studio不仅是警告,而且:
- 快速的高质量支持(仅程序员回答字母);
- 与Visual Studio,IntelliJ IDEA,SonarQube,Jenkins,IncrediBuild集成;
- 能够在本地和云中使用(Docker,Travis CI);
- 用于将分析集成到大型旧项目中的工具(质量抑制);
- 详细的文档以及每种错误模式的示例;
- 向开发人员发送信件的机制(BlameNotifier);
- 编译器监控;
- 依此类推。
谢谢您的关注。 希望您对PVS-Studio感到满意。 并
尝试使用我们的分析仪对您的项目代码进行持续的质量控制。
附加链接:
- PVS-Studio中诊断功能开发的时间表 。
- PVS-Studio代码分析器中用于搜索错误和潜在漏洞的技术 。

如果您想与说英语的读者分享这篇文章,请使用以下链接:Andrey Karpov。
PVS-Studio:进步的引擎 。