是否有PHP文件的静态代码分析器?二进制本身可以检查语法错误,但我正在寻找更多的东西,比如未使用的变量赋值,分配到的数组,而不是先被初始化,以及可能的代码样式警告.开源程序将是首选,但如果强烈建议,我们可能会说服公司支付费用.
Java有一些非常好的开源静态分析工具,如FindBugs,Checkstyle和PMD.这些工具易于使用,非常有用,可在多个操作系统上运行并且免费.
可以使用商业C++静态分析产品.虽然拥有这样的产品很棒,但是学生的成本太高,而且通常很难获得试用版.
另一种方法是找到可在多个平台(Windows和Unix)上运行的开源C++静态分析工具.通过使用开源工具,可以对其进行修改以满足特定需求.寻找工具并非易事.
下面是其他人发现或建议的C++静态分析工具的简短列表.
-Weffc++
GNU g ++ 选项(来自答案)什么是其他任何人都知道并可以推荐的便携式开源C++静态分析工具?
一些相关链接.
我正在阅读Rust书的生命周章,我在这个例子中看到了命名/显式生命周期:
struct Foo<'a> {
x: &'a i32,
}
fn main() {
let x; // -+ x goes into scope
// |
{ // |
let y = &5; // ---+ y goes into scope
let f = Foo { x: y }; // ---+ f goes into scope
x = &f.x; // | | error here
} // ---+ f and y go out of scope
// |
println!("{}", x); // |
} // -+ x goes out …
Run Code Online (Sandbox Code Playgroud) 哪些工具可用于针对C#代码进行静态分析?我知道FxCop和StyleCop.还有其他人吗?我之前遇到过NStatic,但是它一直处于开发阶段,看起来像是永远的 - 它看起来很漂亮,看起来很少见,所以如果它能看到光明的一天会很好.
沿着这些相同的路线(这主要是我对静态分析的兴趣),用于测试多线程问题(死锁,竞争条件等)代码的工具似乎也有点稀缺.刚出现了Typemock Racer,所以我会看着它.除此之外还有什么?
关于您使用的工具的现实意见表示赞赏.
我非常希望将pylint集成到我的python项目的构建过程中,但是我遇到了一个show-stopper:我觉得非常有用的一种错误类型 - : - E1101: *%s %r has no %r
member*
在使用常见的django字段时会报告错误, 例如:
E1101:125:get_user_tags: Class 'Tag' has no 'objects' member
Run Code Online (Sandbox Code Playgroud)
这是由这段代码引起的:
def get_user_tags(username):
"""
Gets all the tags that username has used.
Returns a query set.
"""
return Tag.objects.filter( ## This line triggers the error.
tagownership__users__username__exact=username).distinct()
# Here is the Tag class, models.Model is provided by Django:
class Tag(models.Model):
"""
Model for user-defined strings that help categorize Events on
on a per-user basis.
"""
name = models.CharField(max_length=500, null=False, …
Run Code Online (Sandbox Code Playgroud) 您在Java项目中使用了哪些代码分析工具?
我对各种各样感兴趣
如果适用,还说明您使用的构建工具以及这些工具与IDE和构建工具的集成程度.
如果某个工具仅以特定方式(作为IDE插件,或者说,构建工具插件)可用,那么该信息也值得注意.
我习惯让我的编译器抱怨当我做一些愚蠢的事情就像变量名称上的拼写错误但JavaScript有习惯让它通过.
有没有适用于JavaScript的静态分析工具?
有一个问题比较PMD和CheckStyle.但是,我找不到PMD和FindBugs之间差异/相似性的细分.我认为一个关键的区别是PMD适用于源代码,而FindBugs适用于编译的字节码文件.但就能力而言,它应该是一种选择还是选择,还是相互补充?
我有一个跨多个项目的大型源存储库.我想制作一份关于源代码健康状况的报告,找出需要解决的问题领域.
具体来说,我想调出具有高圈复杂度的例程,识别重复,并且可能运行一些类似lint的静态分析来发现可疑(因而可能是错误的)构造.
我该如何构建这样的报告?
我们将静态分析工具引入到我们的Java产品的构建系统中.我们正在使用Maven2,因此Checkstyle和PMD集成是免费的.然而,就强制执行基本样式规则而言,这两个工具之间的功能似乎存在很大的重叠.
利用这两者有益处吗?我不想维护2个工具,如果一个工作.如果我们选择一个,我们应该使用哪一个?为什么?
我们还计划使用FindBugs.我们应该看看其他静态分析工具吗?
更新:共识似乎是PMD比CheckStyle更受欢迎.我没有看到使用两者的充分理由,我不想维护2套规则文件,因此我们可能会专门针对PMD.我们还将引入FindBugs,也许最终,Macker将实施架构规则.
static-analysis ×10
java ×3
findbugs ×2
pmd ×2
python ×2
c# ×1
c++ ×1
checkstyle ×1
coding-style ×1
django ×1
javascript ×1
lifetime ×1
php ×1
pylint ×1
reference ×1
rust ×1