我正在尝试生成调用图,用它来找出所有可能执行特定函数的执行路径(这样我就不必手动计算出所有路径,因为有很多路径可以导致这个功能).例如:
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.
有谁知道如何实现这一目标?
PEP8表明:
应按以下顺序对导入进行分组:
- 标准库导入
- 相关的第三方进口
- 本地应用程序/库特定导入
您应该在每组导入之间添加一个空行.
有没有一种方法来检查,如果该标准在使用静态代码分析工具包违反任何地方,比如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) 您如何在C/C++代码中进行死代码检测?我有一个非常大的代码库可供使用,至少10-15%是死代码.有没有基于Unix的工具来识别这个区域?有些代码仍然使用了很多预处理器,可以自动化处理吗?
我在Scala中看到了关于静态分析的StackOverflow问题,但是在2009年得到了回答.如您所知,Scala工具正在快速变化.
因此,我想知道熟悉Scala中当前静态分析工具状态的人是否可以告诉我,例如,Scala的Findbugs等价物是否存在.我发现Findbugs为Scala发出了许多不必要的警告,可能与"对象"单例编译成字节码的方式有关,由于特征等等.我听说Scalastyle不仅是Java的CheckStyle的Scala版本,它也是包括Findbugs和PMD.但是,如果它没有实现所有Findbugs和/或PMD,那么还有其他工具可以补充吗?或者,Scalastyle不仅适用于样式检查,还有助于提高代码质量吗?
另外,Scala与Sonar的整合怎么样?Scala Sonar插件(适用于Scalastyle)是否可靠?
由于对Java世界模糊不清,我在谷歌上搜索一个静态分析工具,该工具也足够聪明,能够解决它所发现的问题.我在CodePro工具上运行但是,我再次成为Java社区的新手并且不了解供应商.
根据上述标准,您可以推荐什么工具?
我想看看我的代码(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)
请注意:
我有一个在Visual Studio 2008下编译的大型遗留C++项目.我知道有相当数量的"死"代码无法在任何地方访问 - 未调用的方法,未使用的整个类.
我正在寻找一种可以通过静态分析识别出来的工具.
这个问题:传统C/C++项目中的死代码检测建议使用代码覆盖工具.这不是一个选项,因为测试覆盖率不够高.
它还提到了一个无法访问的代码.gcc的选项.我想要一些类似于Visual Studio的东西.我们已经使用链接器的/ OPT:REF选项来删除冗余代码,但是这并没有报告死代码的有用级别(当与/ VERBOSE一起使用时,有超过100,000行,包括来自库的很多行).
有没有更好的选项适合Visual Studio项目?
根据scala-wartremover静态分析工具,我必须将"final"放在我创建的每个case类的前面:错误消息说"case classes必须是final".
根据scapegoat(Scala的另一个静态分析工具)而不是我不应该(错误消息:"案例类的冗余最终修饰符")
谁是对的,为什么?
是否有用于执行Scala代码静态分析的工具,类似于FindBugs和PMD for Java或Splint for C/C++?我知道FindBugs可以处理编译Java所产生的字节码,所以我很好奇它如何在Scala上运行.
谷歌搜索(截至2009年10月27日)显示的很少.
谷歌搜索(截至2010年2月1日)揭示了这个问题.
是否有任何shell(特别是bash或ksh)检查程序可以测试shell脚本的样式,最佳实践,命名约定等?(像Lint for C,或Perl :: Critic for Perl.)
我知道使用ksh你可以通过运行来进行语法检查,ksh -n script.ksh
但我希望的不仅仅是sytax检查 - 解析/分析实际代码的东西?
我可能运气不好,但我想这并没有伤害.
static-analysis ×10
c++ ×4
scala ×3
dead-code ×2
automation ×1
c ×1
call-graph ×1
case-class ×1
checkstyle ×1
gcc ×1
java ×1
legacy-code ×1
pep8 ×1
python ×1
scalastyle ×1
shell ×1
sonarqube ×1
testing ×1