static-analysis相关内容

为了清楚起见,是否应该在返回类型上使用无用的类型限定符?

当我们在以下头文件中有原型时,我们的静态分析工具会抱怨“返回类型上无用的类型限定符": const int foo(); 我们这样定义它是因为函数返回一个永远不会改变的常量,认为使用 const 后 API 看起来更清晰. 为了清楚起见,我觉得这类似于将全局变量显式初始化为零,尽管 C 标准已经声明如果未显式初始化所有全局变量都将初始化为零.归根结底,这真的无关紧要.(但静态分析工具并没 ..
发布时间:2022-01-23 23:17:46 其他开发

Sonar - 如何使用 sonar-runner 创建子项目

我有一个由几个模块组成的 Java 项目.我正在使用 Sonar 静态分析我的代码.目前我正在使用 sonar-runner 来分析每个模块,它们在 Sonar 的主页中显示为不同的项目.我想在主页上看到主项目名称,并且,一旦我单击它,然后单击“组件" - 将其所有模块视为子项目 - 就像它出现在这里一样: http://nemo.sonarsource.org/components/ind ..
发布时间:2022-01-17 22:17:18 其他开发

SonarQube 是 Checkstyle、PMD、FindBugs 的替代品吗?

我们正在从头开始开发一个网络项目,并正在研究以下静态代码分析工具. 约定(Checkstyle) 不良做法 (PMD) 潜在错误 (FindBugs) 该项目建立在 Maven 之上.我没有为此使用多种工具,而是在寻找一个灵活的解决方案并遇到了 SonarQube. 我们真的可以使用 SonarQube 实现 Checkstyle、PMD 和 Findbugs 的结果吗? ..
发布时间:2022-01-17 21:45:51 其他开发

为类依赖关系生成图形数据的工具

是否有一些工具能够分析 Java 源文件,从中构建图表并以某种标准/可理解的格式提供图表数据? 它绝对不需要 GUI,我更喜欢命令行的东西,这样我就可以通过各种工具(用于分割、可视化等)处理输出. 解决方案 我不确定命令行工具,但我喜欢使用 ObjectAid 逆向工程到类图: http://www.objectaid.com/ 您可以轻松地将任何类及其关系添加到 Obj ..
发布时间:2022-01-15 22:55:55 Java开发

如何强制使用 @Override 注释?

是否有一个静态分析工具可以一致地强制使用 @Override 注释,并且可以在 IDE 之外运行?CheckStyle 有一个 MissingOverride 检查,但它仅适用于使用 @inheritDoc Javadoc 标记的方法.我正在寻找一种可以在持续集成机器上的新构建配置中运行的工具. 解决方案 一种方法是使用 TeamCity 的“Inspection"运行器.我不确定它是否真 ..
发布时间:2022-01-12 19:06:54 Java开发

如何强制执行空检查?

我正在从事一个大型项目,即使有成百上千的自动化测试和 100% 的代码覆盖率,我们也会遇到大量错误.我们得到的大约 95% 的错误都是 NullReferenceExceptions. 有没有办法在编译时强制执行空检查? 除此之外,有没有什么方法可以在单元测试中自动强制执行空检查,而不必自己为空情况编写测试? 解决方案 您应该查看 代码合同.静态检查器仅适用于高端 VS 版本, ..
发布时间:2022-01-06 23:07:04 C#/.NET

C 中的暂定定义和链接

考虑由两个文件组成的C程序, f1.c: int x; f2.c: int x=2; 我阅读了 C99 的第 6.9.2 段标准是这个程序应该被拒绝.在我对 6.9.2 的解释中,变量 x 是在 f1.c 中临时定义的,但是这个临时定义在翻译单元的末尾变成了实际定义,并且(在我看来),因此应该表现得好像 f1.c 包含定义 int x=0;. 使用我能够尝试的所有编译器(以及重 ..
发布时间:2022-01-04 21:10:25 其他开发

如何静态识别 JAR 中缺少的方法(二进制兼容性)

我想验证 2 个 JAR 之间的二进制兼容性. 遵循此答案中的建议 我使用了 jboss tattletale 但它只能找到丢失的类. 如何查找方法是否丢失?有可能吗? 例如 “Depends - on"类 Foo 依赖于 Bar(像许多其他中产阶级工人一样) import org.overlyusedclassnames.Bar公共课 Foo{public void s ..
发布时间:2022-01-01 17:00:50 Java开发

遗留 C/C++ 项目中的死代码检测

您将如何在 C/C++ 代码中进行死代码检测?我有一个相当大的代码库可以使用,至少有 10-15% 是死代码.是否有任何基于 Unix 的工具来识别这些区域?有些代码仍然使用大量的预处理器,自动化流程可以处理吗? 解决方案 您可以为此使用代码覆盖率分析工具并查找代码中未使用的点. gcc 工具链的一个流行工具是 gcov,以及图形前端 lcov (http://ltp.sourcef ..
发布时间:2021-12-29 12:47:30 C/C++开发

clang-tidy cmake 从检查中排除文件

我的项目中有一个依赖项作为源,我无法控制.我正在使用 cmake 的 clang-tidy 集成来分析我的代码,并且这种依赖会引发很多警告.有没有办法告诉 cmake 不要在特定文件上运行 clang-tidy ? 我试图将文件添加到 clang-tidy 的 -line-filter 选项,但这不起作用: set_target_properties(目标属性CXX_CLANG_TIDY "$ ..
发布时间:2021-12-26 22:05:00 其他开发

是否有在本地验证 Azure DevOps Pipeline 的工具?

在对 YAML 定义的 Azure DevOps 管道进行更改时,将更改推送到分支只是为了看到构建失败并出现解析错误(有效的 YAML,但无效的管道定义),然后尝试尝试 -and-error 解决问题. 如果可以通过在本地分析和验证管道定义来缩短反馈循环,那就太好了;基本上是一个关于可以在 Azure pipline 中定义的各种资源等知识的 linter.但是,我找不到任何可以执行此操作的 ..
发布时间:2021-12-26 17:27:35 其他开发

如何通过类型签名搜索 Java API 方法?

是否有任何可用的开源工具支持通过参数类型和返回类型集搜索 Java 方法? 举个例子,假设我正在寻找一种为整数数组生成哈希码的方法.我搜索了一个接受 int[] 参数并返回一个 int 的方法: int[] ->整数 屈服 java.util.Arrays#hashCode(int[])... 或者我可能想找到一种方法,它接受一个字符串、要替换的字符以及要替换的字符.所以我搜索了一个 ..
发布时间:2021-12-20 14:23:26 Java开发

如何使用gcc确定嵌入式系统中的最大堆栈使用量?

我正在为嵌入式系统编写启动代码——在跳转到 main() 函数之前加载初始堆栈指针的代码——我需要告诉它我的应用程序将使用多少字节的堆栈(或一些更大的保守估计). 我被告知 gcc 编译器现在有一个 -fstack-usage 选项和 -fcallgraph-info 选项,可以以某种方式用于静态计算我的确切“最大堆栈使用".( “使用 GCC 进行编译时堆栈需求分析" 作者:Botcazo ..
发布时间:2021-12-18 22:48:17 其他开发