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

verification - 有没有人建立一个 C 文件来验证 MISRA-2004 的代码检查工具?

我们正在使用 PC-Lint 对我们的来源进行代码检查,以确保其符合 MISRA-2004。由于这是一个与安全相关的项目,并且我们正准备获得 TUV 的证书,因此我们需要证明我们对该工具的信心(他们不接受诸如“我多次使用它”之类的东西)。

我们的目标是拥有一套完整的负面测试,通过破坏 MISRA-2004 集的每个规则并强制工具产生错误或警告来检查工具。

是否有人已经这样做了,您愿意分享您的结果/C 代码吗?

0 投票
1 回答
1397 浏览

c# - 寻找 .Net MVC 的静态代码审查系统

我是一个小团队的一员,该团队的任务是帮助我们的项目团队重建 TFS/SharePoint/etc,而我们处于停工期。管理层通知我们应该使用 SONAR 作为静态代码审查工具。这有点有趣,因为我们在项目中使用 C#/ASP.Net/MVC……而 SONAR 是为 Java 设计的,它只能通过插件才能处理 C#。

因此,根据我自己的直觉和一些高级团队成员的推荐,我正在寻找替代方案。

谁能向我推荐这样一个专为在 .Net 框架中工作而设计的系统?我知道存在可以在运行时定位代码的 FxCop,但最好有一些可以在未编译的源代码上工作的东西。

提前感谢您的输入。

0 投票
4 回答
1682 浏览

plsql - 查找重复的源代码

我正在分析一些遗留代码。它大约是 80.000 行旧的 plsql 代码。乍一看,源中有相当多的重复需要删除。而不是做差异手册并查看每个文件,必须有一些工具/命令行配置来检测重复的源代码行。

我的目标是对源代码重写的最小大小以及该程序中捕获了多少实际知识做出有根据的猜测。我编写了一些基本的静态代码分析器来查找每个文件中的控制语句 IF ELSE FOR 等和函数的数量。但是重复的代码仍然需要从我的统计中删除。

0 投票
1 回答
562 浏览

code-analysis - FxCop 规则来检测被吞下的异常

是否有 FxCop 规则来查找被吞下的异常?

我找到了这篇文章http://mystuffisallhere.com/blog/post/2006/01/02/An-FxCop-rule-to-detect-swallowed-exceptions.aspx但我找不到执行此操作的代码或 dll工作。

谢谢阿尔米尔

0 投票
2 回答
481 浏览

lint - 用于增量构建的 PC Lint - 最新代码出错


我正在使用增量构建进行 CI 设置。作为静态检查的一部分,我计划配置一个增量 PC Lint 报告 - 该报告忽略所有其他以前的 Lint 报告,应该只提供新代码中引发的错误。有没有什么工具可以做到这一点?

任何有关探索相关区域的提示都会对我们有所帮助。


我试过报告差异。但由于行号与上次签入不同,因此不会引入实际的增量错误。

我将 Linux 用于我的项目构建,并使用 Windows 生成 PC Lint 报告。

问候,

0 投票
2 回答
3855 浏览

xcode - 如何将来自 clang 静态代码分析的警告视为 Xcode 3 中的错误?

问题

RUN_CLANG_STATIC_ANALYZER(“运行静态分析器”)项目设置在我们的项目中发现了重要问题。我们已经解决了这些问题,我们希望防止未来的问题蔓延。

我们试图让 clang 分析警告被视为错误来破坏我们的构建。尽管启用了 -Werror(“将警告视为错误”),但到目前为止还没有成功。

问题示例

在 Xcode 中生成以下分析调用:

/Developer/usr/bin/clang -x objective-c [...] --analyze [...]/TroubledCode.m -o [...]/TroubledTarget.build/StaticAnalyzer/normal/i386/TroubledCode。列表

产生静态代码分析警告:

但 Xcode 报告“构建成功 ... 1 个分析器结果”。我们正在寻找的解决方案将使上面的示例生成“构建失败”。


解决方案

我接受了 Jim 的建议并创建了一个构建脚本。

为了避免误报,我费力确保它忽略了无关的分析残留物。从 Xcode IDE 构建以及使用xcodebuild.

要将 Xcode 3 分析警告转换为构建错误:

  • 双击有问题的项目或目标。
  • 在 Build 选项卡下,选中 Settings > Linking > Write Link Map File 下的框

该设置也称为LD_GENERATE_MAP_FILE.

  • 在“组和文件”>“目标”下,单击要添加此功能的目标的显示三角形。
  • 右键单击“Link Binary With Libraries”阶段。
  • 选择添加 > 新构建阶段 > 新运行脚本构建阶段
  • 可选:将刚刚添加的“运行脚本”阶段重命名为“将 Clang 警告视为错误”。
  • 如果新脚本阶段尚未打开,请双击它。

复制下面的内容并将其粘贴到“脚本”部分。

更新

Mike Vosseller为 Xcode 5 提供了此脚本的升级版本。

0 投票
1 回答
3636 浏览

java - 如何从 Java 中的字节码生成程序依赖图 (PDG)

我想从 Java 字节码生成程序依赖图 (PDG) 以进行进一步的程序分析。由于这是旧的(论文来自 87 年)并且可能是众所周知的技术,我认为合适的工具很容易获得——但是我找不到它们。

事实上,广泛的搜索只出现了几个结果:

  • Bandera 项目于 2006 年被放弃。
  • Indus 项目自 2007 年以来似乎没有得到任何努力,除了它在 2009 年被开源。
  • Moose JEE 项目似乎很新,因为基本上没有任何文档。
  • 还有Soot框架,它提供了一些类(参见JavaDoc),但似乎缺少生成的实现。事实上,煤烟是班德拉和梧桐的基础。

所以我的问题如下:那里有没有活的和维护的实现?有人在上述任何一个项目中都有经验吗?你会推荐什么?

已经感谢您的投入,非常感谢!

0 投票
4 回答
1752 浏览

r - 编写 R lint 程序

当我在 python 中编程时,我发现使用 pylint 非常有用。但是,当我在 R 中编程时,没有可比性。

作为一个小型项目,我认为尝试编写一个小型 lint 程序会很有趣。没有什么太花哨的东西,类似于:

  • 确保函数名是驼峰式的
  • 平均函数长度
  • 检测未使用的变量
  • 间距。例如,function(x=1, y=2)而不是function(x=1,y=2)

但是,我不确定如何开始(我已经开始查看 pylint 源代码)。

我应该如何开始?这种类型的项目有标准的编程技术吗?我应该考虑任何好的资源吗?

我想用 R 编写整个项目。

0 投票
1 回答
241 浏览

c# - 宪兵不安全代码检测

任何熟悉 Gendarme 的人都知道是否可以创建一个检测 C# 不安全代码的规则?

0 投票
2 回答
105 浏览

java - 强制代码片段始终存在于一组 Java 类中

我必须确保在某个包下的类的所有公共方法中执行一段代码:

确保该代码片段始终作为每个公共方法的第一行出现的最佳方法是什么?

我考虑过使用一些静态代码分析工具,例如 PMD。另外,我相信编译时 AOP 会有所帮助。还有什么想法,指点?

我知道我可以为此使用一个方面。问题是我的应用程序正在使用 Spring,但我需要“检查”的类不是 Spring 管理的 - 另外,我想避免更改服务器启动选项以启用基于 Spring 注释的运行时编织。

编辑:我必须强制执行代码的类是Akka Typed Actors。