问题标签 [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 投票
12 回答
56076 浏览

python - 在 Django 中使用 Pylint

我非常想将pylint集成到我的 python 项目的构建过程中,但我遇到了一个问题:我发现非常有用的错误类型之一——:——E1101: *%s %r has no %r member*使用常见 django 字段时会不断报告错误, 例如:

这是由以下代码引起的:

如何调整 Pylint 以正确考虑对象等字段?(我也查看了 Django 源代码,但我一直无法找到 的实现objects,所以我怀疑它不仅仅是一个类字段。另一方面,我对 python 还很陌生,所以我很可能忽略了一些东西。)

编辑:我发现告诉 pylint 不对这些警告发出警告的唯一方法是阻止所有类型 (E1101) 的错误,这是不可接受的解决方案,因为(在我看来)这是一个非常有用的错误。如果有另一种方法,而不增加 pylint 源,请指出具体细节:)

有关我遇到的问题的摘要,请参见此处pychecker,并且pyflakes- 它们已被证明对于一般用途而言远非不稳定。(在 pychecker 的情况下,崩溃源于 pychecker 代码——而不是它正在加载/调用的源代码。)

0 投票
1 回答
637 浏览

c++ - “__callback” SAL 注释的作用是什么?

虽然我当然了解缓冲区注释的目的,但我看不出__callback检测到什么样的错误。

有什么想法、例子吗?

0 投票
14 回答
100218 浏览

c++ - 有哪些开源 C++ 静态分析工具可用?

Java 有一些非常好的开源静态分析工具,例如FindBugsCheckstylePMD。这些工具易于使用,非常有用,可在多个操作系统上运行并且免费

提供商业 C++ 静态分析产品。虽然拥有这样的产品很棒,但对于学生来说成本太高了,而且通常很难获得试用版。

另一种方法是找到可以在多个平台(Windows 和 Unix)上运行的开源 C++ 静态分析工具。通过使用开源工具,可以对其进行修改以满足某些需求。找到这些工具并非易事。

以下是其他人发现或建议的 C++ 静态分析工具的简短列表。

还有哪些其他任何人都知道并可以推荐的便携式开源 C++ 静态分析工具?

一些相关链接。

0 投票
6 回答
3573 浏览

c++ - 如何在 Visual C++ 2008 中查找未使用的属性/方法

有没有办法在 Visual C++ 2008 Professional 中识别未使用的属性/方法?如果默认情况下不可能,也非常感谢 3rd-party 工具的推荐。

谢谢,
弗洛里安

编辑: nDepend 仅适用于 .NET 程序集。我正在寻找可以与本机 C++ 应用程序一起使用的东西。

0 投票
3 回答
502 浏览

c++ - How to setup VS2008 for efficient C++ development

Normally I program in C# but have been forced to do some work in C++. It seems that the integration with Visual Studio (2008) is really poor compared to C# but I was wondering if there are any good tools, plugins or configurations that can improve the situation.

Another post pointed out the program Visual Assist X, which at least helps with some things such as refactoring (though it is a bit expensive for me). My major problem is, though, that the compile errors give little clue about what is wrong and I spend most of my time figuring out what I did wrong. It just feels like it is possibly to statically check for a lot more errors than VS does out of the box. And why doesn't it provide the blue underlines as with C#, that shouldn't be too hard?!

I realize that half the problem is just the fact that I am new to C++ but I really feel that it can be unreasonably hard to get a program to compile. Are there any tools of this sort out there or are my demands too high?

0 投票
4 回答
13376 浏览

java - Java 静态分析的覆盖率

我想从使用或评估过 Coverity 以静态分析 Java 代码的人那里获得评论。我知道它在 C/C++ 世界中很流行,但是否值得花钱进行 Java 分析,还是我最好使用 PMD、Findbugs 和其他开源工具?

0 投票
17 回答
68054 浏览

java - Checkstyle 与 PMD

我们正在为我们的 Java 产品的构建系统中引入静态分析工具。我们使用的是 Maven2,所以CheckstylePMD集成是免费的。然而,在执行基本样式规则方面,这两个工具之间的功能似乎有很大的重叠。

使用这两者有什么好处吗?如果一个可以工作,我不想维护 2 个工具。如果我们选择一种,我们应该使用哪一种,为什么?

我们还计划使用 FindBugs。我们应该看看其他静态分析工具吗?

更新:共识似乎是 PMD 优于 CheckStyle。我看不出同时使用两者的充分理由,而且我不想维护两组规则文件,因此我们可能会专门针对 PMD。我们还将引入 FindBugs,也许最终还会引入 Macker 来执行架构规则。

0 投票
5 回答
658 浏览

java - 在 Java 中查找共享可变数据错误的工具

我有一个大型遗留系统需要维护。代码库到处都使用线程,这些线程共享大量可变数据。我知道,听起来很糟糕。无论如何,不​​要回答“从头开始重写整个应用程序”,否则我会投票给你 :-) 我曾尝试在代码库上运行一些静态分析工具,但似乎没有一个能捕捉到这种经常发生的情况在我们的源代码中:多个线程正在读取和写入根本没有标记为 volatile 或同步的变量。通常这发生在“runFlag”类型的变量上。在 Effective Java 2nd edition page 260 上就是一个例子:

这个例子永远不会在 Windows/Linux 上完成,并为 Sun JVM 提供了“-server”启动参数。那么,是否有任何(半)自动的方法来发现这些问题,还是我必须完全依赖代码审查?

0 投票
6 回答
14914 浏览

java - checkstyle + 抑制过滤器

我有一个 checkstyle 抑制过滤器设置(例如忽略单元测试代码中的幻数)。

抑制 xml 文件与 checkstyle xml 文件位于同一文件夹中。但是,这个文件实际上是不同的:在我的 Windows 开发框中,它位于 Linux CI 服务器上的 d:\dev\shared\checkstyle\config 中,它将位于另一个开发者框的 /root/repo/shared/checkstyle/config 中它可能在任何地方(他们查看他们的 svn 存储库)。

唯一“一致”的是抑制文件始终与 checkstyle xml 文件位于同一文件夹中。我无法弄清楚如何确保始终一致地拾取该文件。另外我不知道为什么 checkstyle 不支持 checkstyle xml 文件中的嵌入式抑制。

有什么帮助吗?

0 投票
5 回答
20363 浏览

java - 商业 Java 静态分析工具与免费的相比如何?

我熟悉一些可用于 Java 的免费静态分析工具,例如 FindBugs 和 PMD。我想知道的是 Klocwork 和 Coverity 等商业产品如何与这些产品相抗衡。他们的优势和劣势是什么?