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);
- 编译器运行监视(Compiler Monitoring);
- 依此类推。
谢谢您的关注。 希望您与我们分享PVS-Studio的喜悦。
尝试使用我们的分析器对您的项目进行连续的代码质量控制。
附加链接:
- 诊断能力发展的PVS-Studio图 。
- PVS-Studio代码分析器中用于查找错误和潜在漏洞的技术 。