static-analysis相关内容
当我们在以下头文件中有原型时,我们的静态分析工具会抱怨“返回类型上无用的类型限定符": const int foo(); 我们这样定义它是因为函数返回一个永远不会改变的常量,认为使用 const 后 API 看起来更清晰. 为了清楚起见,我觉得这类似于将全局变量显式初始化为零,尽管 C 标准已经声明如果未显式初始化所有全局变量都将初始化为零.归根结底,这真的无关紧要.(但静态分析工具并没
..
我有一个由几个模块组成的 Java 项目.我正在使用 Sonar 静态分析我的代码.目前我正在使用 sonar-runner 来分析每个模块,它们在 Sonar 的主页中显示为不同的项目.我想在主页上看到主项目名称,并且,一旦我单击它,然后单击“组件" - 将其所有模块视为子项目 - 就像它出现在这里一样: http://nemo.sonarsource.org/components/ind
..
我们正在从头开始开发一个网络项目,并正在研究以下静态代码分析工具. 约定(Checkstyle) 不良做法 (PMD) 潜在错误 (FindBugs) 该项目建立在 Maven 之上.我没有为此使用多种工具,而是在寻找一个灵活的解决方案并遇到了 SonarQube. 我们真的可以使用 SonarQube 实现 Checkstyle、PMD 和 Findbugs 的结果吗?
..
是否有一些工具能够分析 Java 源文件,从中构建图表并以某种标准/可理解的格式提供图表数据? 它绝对不需要 GUI,我更喜欢命令行的东西,这样我就可以通过各种工具(用于分割、可视化等)处理输出. 解决方案 我不确定命令行工具,但我喜欢使用 ObjectAid 逆向工程到类图: http://www.objectaid.com/ 您可以轻松地将任何类及其关系添加到 Obj
..
是否有一个静态分析工具可以一致地强制使用 @Override 注释,并且可以在 IDE 之外运行?CheckStyle 有一个 MissingOverride 检查,但它仅适用于使用 @inheritDoc Javadoc 标记的方法.我正在寻找一种可以在持续集成机器上的新构建配置中运行的工具. 解决方案 一种方法是使用 TeamCity 的“Inspection"运行器.我不确定它是否真
..
问题:我正在设置 jenkins + sonar + github 集成,以便通过声纳自动检查 pullrequest 静态代码. 我的配置: 使用 github 安装 Sonar 安装的詹金斯 在 jenkins 构建后操作中,我具有以下属性 -Dsonar.github.login=bhuwang-Dsonar.github.repository=公司/repo-
..
我想在 Visual Studio 2017 中使用代码分析,但我使用的是 Qt,它给了我很多来自标题的警告.我试过关闭警告: #pragma warning(push, 0)#include #pragma 警告(弹出) 但这无济于事.我还尝试使用 这个: #include #pragma 警告(推,0)#pragma
..
我正在从事一个大型项目,即使有成百上千的自动化测试和 100% 的代码覆盖率,我们也会遇到大量错误.我们得到的大约 95% 的错误都是 NullReferenceExceptions. 有没有办法在编译时强制执行空检查? 除此之外,有没有什么方法可以在单元测试中自动强制执行空检查,而不必自己为空情况编写测试? 解决方案 您应该查看 代码合同.静态检查器仅适用于高端 VS 版本,
..
考虑由两个文件组成的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;. 使用我能够尝试的所有编译器(以及重
..
我想验证 2 个 JAR 之间的二进制兼容性. 遵循此答案中的建议 我使用了 jboss tattletale 但它只能找到丢失的类. 如何查找方法是否丢失?有可能吗? 例如 “Depends - on"类 Foo 依赖于 Bar(像许多其他中产阶级工人一样) import org.overlyusedclassnames.Bar公共课 Foo{public void s
..
您将如何在 C/C++ 代码中进行死代码检测?我有一个相当大的代码库可以使用,至少有 10-15% 是死代码.是否有任何基于 Unix 的工具来识别这些区域?有些代码仍然使用大量的预处理器,自动化流程可以处理吗? 解决方案 您可以为此使用代码覆盖率分析工具并查找代码中未使用的点. gcc 工具链的一个流行工具是 gcov,以及图形前端 lcov (http://ltp.sourcef
..
我的项目中有一个依赖项作为源,我无法控制.我正在使用 cmake 的 clang-tidy 集成来分析我的代码,并且这种依赖会引发很多警告.有没有办法告诉 cmake 不要在特定文件上运行 clang-tidy ? 我试图将文件添加到 clang-tidy 的 -line-filter 选项,但这不起作用: set_target_properties(目标属性CXX_CLANG_TIDY "$
..
在对 YAML 定义的 Azure DevOps 管道进行更改时,将更改推送到分支只是为了看到构建失败并出现解析错误(有效的 YAML,但无效的管道定义),然后尝试尝试 -and-error 解决问题. 如果可以通过在本地分析和验证管道定义来缩短反馈循环,那就太好了;基本上是一个关于可以在 Azure pipline 中定义的各种资源等知识的 linter.但是,我找不到任何可以执行此操作的
..
我正在阅读 Rust 书的生命周期章节,我遇到了这个命名/显式生命周期的例子: struct Foo{x: &'a i32,}fn 主(){让 x;//-+ x 进入作用域//|{//|让 y = &5;//---+ y 进入作用域让 f = Foo { x: y };//---+ f 进入作用域x = &f.x;//||错误在这里}//---+ f 和 y 超出范围//|println!("{
..
我正在寻找一种用于 Python、Ruby、Sql、Cobol、Perl、PL/SQL、SQL 的静态分析工具,类似于查找错误和检查样式.我正在寻找计算行数、识别开发过程中的错误并执行编码标准. 解决方案 Perl 有 Perl::Critic(和 perlcritic.com)
..
是否有任何可用的开源工具支持通过参数类型和返回类型集搜索 Java 方法? 举个例子,假设我正在寻找一种为整数数组生成哈希码的方法.我搜索了一个接受 int[] 参数并返回一个 int 的方法: int[] ->整数 屈服 java.util.Arrays#hashCode(int[])... 或者我可能想找到一种方法,它接受一个字符串、要替换的字符以及要替换的字符.所以我搜索了一个
..
我想查看我的代码 (C++) 中所有忽略函数返回值的地方.我该怎么做 - 使用 gcc 或静态代码分析工具? 错误代码示例: int f(int z) {返回 z + (z*2) + z/3 + z*z + 23;}int main(){国际我= 7;f(i);/////
..
我正在为嵌入式系统编写启动代码——在跳转到 main() 函数之前加载初始堆栈指针的代码——我需要告诉它我的应用程序将使用多少字节的堆栈(或一些更大的保守估计). 我被告知 gcc 编译器现在有一个 -fstack-usage 选项和 -fcallgraph-info 选项,可以以某种方式用于静态计算我的确切“最大堆栈使用".( “使用 GCC 进行编译时堆栈需求分析" 作者:Botcazo
..
我想直观地查看类、函数和变量/属性、依赖项,例如 NDepend, 但对于 ActionScript 2 或 AS3 代码. 有什么计划或想法吗? 以某种方式使用 doxygen? FlexUnit? 解决方案 2018 年 11 月更新: Structure101(新下载页面)似乎不再有 ActionScript 变体. 原始答案,链接已过时: 下载S
..
问题:我正在设置 jenkins + sonar + github 集成以通过声纳进行自动 pullrequest 静态代码检查. 我的配置: 使用 github 安装声纳 安装 jenkins 在 jenkins post-build action 中,我有以下属性 -Dsonar.github.login=bhuwang-Dsonar.github.reposit
..