问题标签 [static-code-analysis]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
4580 浏览

c++ - 为什么 Cppcheck 没有发现这个明显的数组越界错误?

我安装了Cppcheck工具来对我的 C++ 项目进行静态代码分析,感觉它的性能很差。例如,谁能告诉我为什么Cppcheck 在以下代码中无法找到数组越界错误?

有一个在线演示,可以使用 Cppcheck 方便地检查此代码。它所提出的只是第 4 行的内存泄漏,没有潜在缓冲区溢出的迹象。

0 投票
1 回答
175 浏览

c# - 静态检查器无法在某些条件下评估确定性行为?

我已设法将其归结为以下测试用例,但我想知道这是否是 C# 代码合同中静态检查器的限制,还是我缺少的东西。当我尝试使用一种代码来证明合同时,它会抛出一个不变的未经证实的警告,但是(我认为是)一种证明它可以正常工作的等效方法。

最初我认为这可能是因为我没有使用具有 Pure 属性的对象(因此代码合同无法评估属性是否是确定性的)而是在对象周围创建了 Pure 包装器(恰好是Nullable<Int64>)没有帮助。

第一个和第三个测试用例之间是否有区别,或者我认为它们是等价的是否正确,只是静态检查器无法正确评估第三种情况?

0 投票
2 回答
1008 浏览

c++ - 推荐任何流行的 C++ 代码静态检查工具?

我们团队有几个新的 c++ 人在工作,每天都有太多丑陋的代码!我讨厌那些使用只读字符串、STL 容器作为参数但没有 const 引用的函数!!!我疯了!!!

有没有静态代码检查器可以找到这些丑陋的代码?我需要在我们的 makefile 中使用这样的工具。

0 投票
1 回答
572 浏览

javascript - 使用自定义选项从控制台运行 JSlint?

在上一个问题中,在 .js 文件上运行 JSLint,从 chrome 或 firefox 的调试控制台中,我学习了如何从控制台或节点运行 JSLint。

有没有办法运行 JSLint(来自 JavaScript 代码,如对上述问题的答案),但使用自定义选项,例如对于包含 jQuery 的代码(使用 JQuery 的 Javascript 的 JSLint 验证)选项假设浏览器和以 jQuery 和 $ 作为参数的选项预定义部分?

0 投票
1 回答
682 浏览

c - 夹板如何进行污点分析

如何使用 Splint 进行污点分析?

我已经在我的 Ubuntu 12.04 上安装了 Splint。创建了一个小测试用例,如下所示:

还创建了具有以下内容的 splint.xh 文件:

还创建了具有以下内容的 splint.mts 文件:

然后最后用命令运行夹板工具:

其中 prg001.c 是样本输入,“splint”是指 splint.mts 和 splint.xh 文件。所有文件都在当前目录中。

我收到的输出是:

夹板 3.1.2 --- 2012 年 8 月 21 日

prg001.c: (在函数 main) prg001.c:6:1: printf 的格式字符串参数不是编译时常量:格式参数在编译时是未知的。这可能会导致安全漏洞,因为无法对参数进行类型检查。(使用 -formatconst 禁止警告) prg001.c:3:14: 未使用参数 argc 函数体中未使用函数参数。如果类型兼容性或未来计划需要参数,请在参数声明中使用 / @unused@ /。(使用 -paramuse 禁止警告)

完成检查 --- 2 个代码警告

输出中没有任何污点分析的提示。有人可以帮助我了解如何使用 Splint 完成污点分析。

谢谢

0 投票
1 回答
2388 浏览

memory-leaks - 任何可以找到内存泄漏java代码的java静态代码分析器?

    是否有任何 Java 静态代码分析器可以检测可能导致内存泄漏的代码?我知道 JVM 分析器用于此目的,但这无助于我们在开发过程中放置​​检查点。

   教育开发人员了解最佳实践是一方面,但我如何将自动化流程作为检查点?

欢迎任何想法或建议。

0 投票
2 回答
7715 浏览

code-analysis - 静态和动态代码分析

我发现了几个关于这个主题的问题,所有这些问题都有很多参考资料,但我对此仍然没有一个清晰的概念,因为大多数参考资料都是关于具体的工具,而不是关于分析的一般概念。因此我有一些问题:

关于静态分析: 1. 我想有一个参考,或者总结一下哪些技术是成功的,并且现在更具有相关性。2. 他们真的能做些什么来发现错误,我们可以做一个总结还是取决于工具?

关于符号执行: 1. 哪里可以附上符号执行?我想根据方法,我想知道它们是动态分析,还是静态和动态分析的混合是否可以确定。

我发现区分工具中两种不同技术的问题,即使我认为我知道理论上的区别。

我实际上正在使用 C 提前谢谢

0 投票
4 回答
1275 浏览

c - C syntax parser

Are there any libs out there that can parse C syntax?

For example I would like to write my own code/scripts that will analyze c files given the c syntax. Number of "if" statements per function/file, lines of comments per lines of code in a function and so on.....

I have no problem writing all this custom code just wanted to make the job easier if there was already some lib that I can use to jump start instead of starting with the parser.

Thanks!

0 投票
2 回答
466 浏览

c# - 通过 NDepend 查找仅在特殊类中使用的代码

我正在尝试使用 NDepend 删除我们代码库中的死代码。由于我们使用的是依赖注入,我想找到仅在从注册表库派生的类中使用的接口(和实现):

有没有办法做到这一点?

谢谢!

0 投票
3 回答
520 浏览

c++ - 哪个工具可以列出对 C 中特定变量的写访问权限?

不幸的是,我什至不确定如何调用这种静态分析。这不是真正的控制流分析,因为我不是在寻找函数调用,也不需要数据流分析,因为我不关心实际值。

我只需要一个工具来列出对特定变量进行写访问的位置(文件、函数)。我什至不在乎该列表是否包含无法访问的行。我可以想象编写一个简单的解析器就足以完成这项任务,但我确信肯定有一个工具可以进行这种简单的分析。

作为一个穷学生,我会很感激免费或更好的开源工具,如果有人能告诉我这种类型的静态分析实际上是如何被调用的,我将同样感激!

编辑:我忘了提到代码库中没有指针算法。