标签: static-analysis

如何为C++代码生成调用图

我正在尝试生成调用图,用它来找出所有可能执行特定函数的执行路径(这样我就不必手动计算出所有路径,因为有很多路径可以导致这个功能).例如:

path 1: A -> B -> C -> D  
path 2: A -> B -> X -> Y -> D  
path 3: A -> G -> M -> N -> O -> P -> S -> D  
...  
path n: ...
Run Code Online (Sandbox Code Playgroud)

我已经尝试过Codeviz和Doxygen,不知怎的,两个结果只显示目标函数的被调用者D.在我的例子中,D是一个类的成员函数,其对象将被包装在智能指针中.客户端将始终通过工厂获取智能指针对象以调用D.

有谁知道如何实现这一目标?

c++ static-analysis call-graph

79
推荐指数
4
解决办法
5万
查看次数

导入订单编码标准

PEP8表明:

应按以下顺序对导入进行分组:

  1. 标准库导入
  2. 相关的第三方进口
  3. 本地应用程序/库特定导入

您应该在每组导入之间添加一个空行.

有没有一种方法来检查,如果该标准在使用静态代码分析工具包违反任何地方,比如pylint,pyflakes,pychecker,pep8


违规示例:

from my_package import my_module
from django.db import models
import os
Run Code Online (Sandbox Code Playgroud)

正确的导入方式:

import os

from django.db import models

from my_package import my_module
Run Code Online (Sandbox Code Playgroud)

python static-analysis pep8 python-import

78
推荐指数
4
解决办法
3万
查看次数

传统C/C++项目中的死代码检测

您如何在C/C++代码中进行死代码检测?我有一个非常大的代码库可供使用,至少10-15%是死代码.有没有基于Unix的工具来识别这个区域?有些代码仍然使用了很多预处理器,可以自动化处理吗?

c++ automation static-analysis legacy-code dead-code

68
推荐指数
5
解决办法
3万
查看次数

Scala的静态分析工具的当前状态是什么?

我在Scala中看到了关于静态分析的StackOverflow问题,但是在2009年得到了回答.如您所知,Scala工具正在快速变化.

因此,我想知道熟悉Scala中当前静态分析工具状态的人是否可以告诉我,例如,Scala的Findbugs等价物是否存在.我发现Findbugs为Scala发出了许多不必要的警告,可能与"对象"单例编译成字节码的方式有关,由于特征等等.我听说Scalastyle不仅是Java的CheckStyle的Scala版本,它也是包括Findbugs和PMD.但是,如果它没有实现所有Findbugs和/或PMD,那么还有其他工具可以补充吗?或者,Scalastyle不仅适用于样式检查,还有助于提高代码质量吗?

另外,Scala与Sonar的整合怎么样?Scala Sonar插件(适用于Scalastyle)是否可靠?

static-analysis scala scalastyle sonarqube

59
推荐指数
4
解决办法
1万
查看次数

针对Java的静态分析工具推荐?

由于对Java世界模糊不清,我在谷歌上搜索一个静态分析工具,该工具也足够聪明,能够解决它所发现的问题.我在CodePro工具上运行但是,我再次成为Java社区的新手并且不了解供应商.

根据上述标准,您可以推荐什么工具?

java static-analysis

56
推荐指数
6
解决办法
5万
查看次数

如果忽略返回值,如何提出警告?

我想看看我的代码(C++)中忽略函数返回值的所有位置.我怎么能用gcc或静态代码分析工具呢?

代码示例错误:

int f(int z) {
    return z + (z*2) + z/3 + z*z + 23;
}


int main()
{
  int i = 7;
  f(i); ///// <<----- here I disregard the return value

  return 1;
}
Run Code Online (Sandbox Code Playgroud)

请注意:

  • 它应该工作,即使函数及其使用在不同的文件中
  • 免费静态检查工具

c c++ gcc static-analysis

53
推荐指数
4
解决办法
1万
查看次数

死代码识别(C++)

我有一个在Visual Studio 2008下编译的大型遗留C++项目.我知道有相当数量的"死"代码无法在任何地方访问 - 未调用的方法,未使用的整个类.

我正在寻找一种可以通过静态分析识别出来的工具.

这个问题:传统C/C++项目中的死代码检测建议使用代码覆盖工具.这不是一个选项,因为测试覆盖率不够高.

它还提到了一个无法访问的代码.gcc的选项.我想要一些类似于Visual Studio的东西.我们已经使用链接器的/ OPT:REF选项来删除冗余代码,但是这并没有报告死代码的有用级别(当与/ VERBOSE一起使用时,有超过100,000行,包括来自库的很多行).

有没有更好的选项适合Visual Studio项目?

c++ static-analysis dead-code

52
推荐指数
2
解决办法
1万
查看次数

在声明案例类时我应该使用final修饰符吗?

根据scala-wartremover静态分析工具,我必须将"final"放在我创建的每个case类的前面:错误消息说"case classes必须是final".

根据scapegoat(Scala的另一个静态分析工具)而不是我不应该(错误消息:"案例类的冗余最终修饰符")

谁是对的,为什么?

static-analysis scala case-class scala-wartremover

50
推荐指数
1
解决办法
9809
查看次数

是否有任何工具可用于执行Scala代码的静态分析?

是否有用于执行Scala代码静态分析的工具,类似于FindBugs和PMD for Java或Splint for C/C++?我知道FindBugs可以处理编译Java所产生的字节码,所以我很好奇它如何在Scala上运行.

谷歌搜索(截至2009年10月27日)显示的很少.

谷歌搜索(截至2010年2月1日)揭示了这个问题.

testing functional-programming static-analysis scala

46
推荐指数
5
解决办法
8283
查看次数

是否有一个静态分析工具,如Lint或Perl :: Critic for shell脚本?

是否有任何shell(特别是bash或ksh)检查程序可以测试shell脚本的样式,最佳实践,命名约定等?(像Lint for C,或Perl :: Critic for Perl.)

我知道使用ksh你可以通过运行来进行语法检查,ksh -n script.ksh但我希望的不仅仅是sytax检查 - 解析/分析实际代码的东西?

我可能运气不好,但我想这并没有伤害.

shell static-analysis checkstyle

45
推荐指数
3
解决办法
9461
查看次数