静态代码分析:集成到调试和发布版本中,还是只集成一个或另一个?

时间:2009-09-01 15:27:17

标签: code-analysis

作为最佳实践,您是在调试和发布版本上运行代码分析,还是只运行其中一个?

5 个答案:

答案 0 :(得分:2)

如果出于某种原因,这两个版本是不同的(并且它们实际上不应该用于静态分析目的),那么您应该确保您的指标针对实际生产的内容进行运行。

理想情况下,您应该拥有CI服务器,并且开发人员用于启动此类分析的命令与CI服务器的功能没有区别

答案 1 :(得分:1)

我通常选择一个,那个是发布版本。我想这并不重要,但我倾向于认为,当收集有关生产中运行的信息时,最好是完全将要生产什么(这适用于分析,分析,基准测试等等。)。

答案 2 :(得分:1)

无论您的构建类型如何,

静态代码分析都会显示相同的结果。

Debug / Release仅在运行时更改生成的程序集以及包含或排除调试信息。

答案 3 :(得分:1)

我没有单独的'debug'和'release'版本(参见Separate ‘debug’ and ‘release’ builds?)。

答案 4 :(得分:0)

LLVM人员实际上建议分析DEBUG配置:

  

总是在" debug"中分析项目。构造

     

大多数项目都可以在" debug"启用断言的模式。   静态分析器会提取断言以修剪不可行   路径,在某些情况下可以大大减少虚假的数量   工具发出的正面(虚假错误报告)。

此外,调试版本往往更快(不需要优化),而在CI世界中,速度更快(其他条件相同)。