问题标签 [static-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 投票
2 回答
941 浏览

c - 夹板和测试覆盖率分析?

我正在寻找一种具有夹板成熟度的静态分析工具,该工具还可以对代码进行测试覆盖分析。例如,libfoo.c 中的所有非静态函数都应该存在于 libfoo.h 中,因此 libfoo.h 中的所有函数都应该有单元测试。

当然,这种行为需要某种粒度控制,但这将在静态分析工具的某种启动配置文件中定义。

我正在从事一个进展非常迅速的项目,每天都在添加各种东西,我希望找到一些有助于确保单元测试覆盖率保持足够的静态分析工具。它是一个庞大的、地理分布的团队,这意味着事情会 24/7 全天候提交,我需要每晚构建更智能。

我不需要它超级聪明,我只需要它在没有测试某些东西时破坏构建,除非它明确超出范围。

CCAN 正在研究类似的东西,但是在编写任何实质性内容之前还需要几个月的时间。我也需要一些成熟的东西。

提前感谢您提供任何宝石的链接。

0 投票
4 回答
3370 浏览

compiler-construction - Gimpel 的 PC-lint 和 Flexelint;有人用过吗?

因此,我阅读了一些杂志文章和 Gimpel 的 PC-lint 和 Flexelint C/C++ 编译器的网站。

它真的很贵(至少对我来说),但似乎它可能有一些优点来保证成本。

所以我想知道是否有其他人使用/购买过它们并且可以提供他们的意见?

0 投票
5 回答
3726 浏览

c++ - 静态代码分析器:非托管 C++ Visual Studio 2008

我在 Visual Studio 2008 上开发商业非托管 C++ 应用程序,我想添加一个静态代码分析工具。

有什么建议吗?

我认为如果该工具可以集成到 MSVC 中会非常好。

我正在考虑PC-Lint + Visual Lint

但是,我也一直在认真研究CoverityUnderstandKlockwork

价格真的不是问题。我希望得到那些在 MSVC 上实际使用过非托管 C++工具的人的意见,他们非常喜欢它。

最后,VSTS 和 Intel Parallel Studio 现在还提供静态代码分析。不错~

注意:相关帖子建议 Coverity 是最好的(?)(见最后 2 个帖子)

0 投票
2 回答
4698 浏览

language-agnostic - 抽象类中的空方法

我刚刚安装了 PMD 来分析我的 Java 项目。非常好的工具,强烈推荐。无论如何,我有一些错误说:

“抽象类中的空方法应该是抽象的”

我查看了 PMD 文档,解释说:

因为开发人员可能会依赖这个空的实现而不是编写适当的代码

所以我想我理解这个代码样式错误背后的原因,但考虑以下场景:我有一个名为 Entity 的抽象类。这个类有一个默认实现的布尔方法。(控制是否在删除时删除其相关实体)。只有少数派生类将此默认行为覆盖为 true。

我应该删除默认实现并强制所有派生类声明它们的行为吗?你真的认为这种模式是一种糟糕的做法吗?

澄清: PMD 将具有单个返回语句的方法视为空。

0 投票
10 回答
1178 浏览

java - Java 代码使用检查器

我正在开发一个库,我们想确定我们的库有多少被使用。IE 我们想知道我们的库中有多少方法是公开的,但从未被调用。

目标:静态分析 确定当前项目中有多少行代码调用包A中的每个公共方法。如果调用次数为零,则应报告该方法。

0 投票
4 回答
1047 浏览

c# - 用于计算代码块的代码复杂度的现有库

我得到一个包含任意数量代码的字符串。我想计算一个代表该字符串的代码复杂度的数字。就像是:

我意识到有很多工具可以为你做到这一点。 这些工具对我不起作用,因为我想以编程方式进行。 我希望该库位于 C# 中,但此时可以使用任何东西。

提前致谢!

0 投票
4 回答
596 浏览

.net - 关于如何编写静态分析规则 (FXCop) 以确保删除事件委托的任何想法

我们一直在进行一次大的内存泄漏分析,发现其中一个促成因素是未删除事件上的委托,导致对象不能足够快(或有时永远)被 GC。

有人对如何在 FXCop 中编写规则以确保我们从处理程序中删除委托有任何想法吗?

我刚刚看到这个,因此我会在那里询问更多信息。

0 投票
4 回答
3076 浏览

sql - Oracle死锁检测工具

我正在寻找一个 Oracle 查询和 PL/SQL 过程(触发器、约束等)的静态分析器 - 一个将传递我们的数据库方案并指向潜在死锁的工具。就像Java 的FindBugs一样。

如果这样的工具不存在,你想要吗?

0 投票
5 回答
4837 浏览

lua - 静态分析 Lua 代码的潜在错误

我正在使用一个封闭源代码的应用程序,它加载 Lua 脚本并允许通过修改这些脚本进行一些自定义。不幸的是,如果 Lua 脚本之一出现问题,该应用程序不太擅长生成有用的日志输出(我得到的只是“脚本失败”)。

我意识到动态语言几乎可以抵抗静态代码分析,例如可以分析 C++ 代码的方式。

不过,我希望会有一个工具通过 Lua 脚本运行,例如警告未在特定脚本的上下文中定义的变量。

基本上我正在寻找的是一个用于脚本的工具:

会输出:

对于大多数事情,它只能是真正的警告,但这仍然很有用!这样的工具存在吗?或者可能是具有类似功能的 Lua IDE?

谢谢,克里斯

0 投票
1 回答
11685 浏览

customization - 如何从 StyleCop 规则 SA1600 中排除私人成员

有谁知道如何更改 StyleCop 规则 SA1600,即必须记录元素,以便它仅适用于属性而不适用于私有成员?

我们的 ORM (DevExpress XPO) 要求您拥有所有公共属性的私有成员(因为您必须在 setter 中调用一个函数来将其持久化并将其存储在私有成员中),并评论公共属性和私有考虑到一些表有超过 50 个字段,有同样事情的成员正在杀死我。