标签: static-code-analysis

如何从MSBuild指定规则集

升级到VS 2010之后MSBUILD/p:RunCodeAnalysis = true无法按预期工作

msbuild solution.sln /p:RunCodeAnalysis=true
Run Code Online (Sandbox Code Playgroud)

为了获得更快的构建,我们删除了DEBUG构建的CODE_ANALYSIS常量.但这意味着在运行上面的msbuild命令时,它会默认为所有规则,而不是使用我们在项目属性页面上的"代码分析"选项卡中指定的规则集.

所以现在我需要构建一个发布模式来运行代码分析(它定义了CODE_ANALYSIS常量):

msbuild solution.sln /p:RunCodeAnalysis=true /p:Configuration=release
Run Code Online (Sandbox Code Playgroud)

然而,这意味着我们在开发机器上获得了一个版本.这在我们的设置中有一些副作用.

问题:如何从命令行指定rulset.我希望有类似的东西:

msbuild solution.sln /p:RunCodeAnalysis=true /p:foobar=rules.ruleset
Run Code Online (Sandbox Code Playgroud)

.net msbuild static-code-analysis

12
推荐指数
1
解决办法
7470
查看次数

将@author用作代码样式违规

目标:

如果在项目中@author.js文件内的任何位置使用标记,则发出警告.

题:

jshint或其他静态代码检查工具可以帮助吗?如果没有,我有什么选择?

描述:

我完全同意Paul在Javadoc @author标签上的答案标记良好实践主题并将@author标签视为不必要的噪音.

而且,在Python世界中,我看到人们检查标签的使用情况.例如,Openstack Style Guidelines明确声明不使用@author标记.他们开发了一套自定义flake8检查,包括:

[H105] Don’t use author tags.
Run Code Online (Sandbox Code Playgroud)

现在,我正试图在JavaScript中解决同样的问题.

示例(这不应该通过代码质量检查):

/**
 * @author John Smith <john@smith.com>
 */

'use strict';
Run Code Online (Sandbox Code Playgroud)

javascript jslint static-code-analysis jshint eslint

12
推荐指数
3
解决办法
3163
查看次数

如何将来自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. plist中

生成静态代码分析警告:

[...]/TroubledCode.m:38:34: warning: Potential leak of an object allocated on line 38 and stored into 'leakingManager'
    Manager *leakingManager = [[Manager alloc] init];
                              ^
1 warning generated.
Run Code Online (Sandbox Code Playgroud)

但Xcode报告"Build Succeeded ... 1 analyzer results".我们正在寻找的解决方案将使上面的示例生成"构建失败".


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

为了避免误报,我遇到了麻烦,确保它忽略了无关的分析残留物.从Xcode IDE构建和使用构建项目时,此解决方案应该可以正常工作xcodebuild.

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

  • 双击有问题的项目或目标.
  • 在"构建"选项卡下,选中"设置">"链接">"写入链接映射文件"下的框

该设置也称为LD_GENERATE_MAP_FILE.

  • 在"论坛与文件">"目标"下,点击您要添加此功能的目标的显示三角形.
  • 右键单击"Link Binary With Libraries"阶段.
  • 选择Add> New Build Phase> New Run Script Build Phase
  • 可选:重命名刚刚添加到"将Clang警告视为错误"的"运行脚本"阶段.
  • 如果新脚本阶段尚未打开,请双击该脚本阶段.

复制下面的内容并将其粘贴到"脚本"部分.

error_count=0 …
Run Code Online (Sandbox Code Playgroud)

xcode warnings clang static-code-analysis

11
推荐指数
1
解决办法
3495
查看次数

我正在寻找一个递归分析工具

我在本周末遇到了一个问题,其中方法1调用方法2,调用方法3捕获异常,并在异常处理方法1中再次调用...

M1 - > M2 - > M3 - > M1 ....

一旦问题发生,问题变得明显且易于修复.

有谁知道在.NET应用程序中检测这样的问题的工具?

.net recursion code-analysis static-code-analysis

11
推荐指数
2
解决办法
818
查看次数

代码契约是否未能发现Nullable <T> .HasValue和null之间的明显关系?

我正在尝试将代码契约应用于我的代码,我遇到了一个令人困惑的问题.这段代码无法满足合同,但除非我真的很厚,否则我希望它能够轻松分析id在返回时必须有一个值

if (id == null)
    throw new InvalidOperationException(string.Format("{0} '{1}' does not yet have an identity", typeof(T).Name, entity));

return id.Value;
Run Code Online (Sandbox Code Playgroud)

代码合同错误:需要未经证实:HasValue

c# code-contracts static-code-analysis

11
推荐指数
1
解决办法
264
查看次数

非托管C++代码的代码度量分析

有没有人知道一个免费工具,类似于Visual Studio 2010中为托管代码构建的内容,可以分析非托管,MFC C++代码并提供指标(代码行,依赖关系或耦合等)?

我一直在谷歌上搜索一段时间,但真的找不到任何有效的东西.万分感谢!

c++ mfc code-analysis static-code-analysis

11
推荐指数
1
解决办法
8732
查看次数

Visual Studio代码分析错误CA 1006

代码分析抛出错误CA1006:每当我们在接口契约中定义自定义定义时,不要将泛型类型嵌套在成员签名中.处理这个所谓的设计问题的最佳方法是什么.对此有任何深刻的想法.

感谢您花费宝贵的时间来完成这项工作.

例:-

 Task<IList<Employee>> LoadAllEmployeeAsync();
Run Code Online (Sandbox Code Playgroud)

c# code-analysis fxcop visual-studio static-code-analysis

11
推荐指数
1
解决办法
2674
查看次数

使用自定义检查扩展jshint

在Python世界中,有多个静态代码分析工具,可以通过编写插件或扩展来轻松扩展自定义检查,例如:

在JavaScript世界中,据我所知,它jshint是静态代码分析的头号工具.我已经使用了一段时间,它肯定有助于找到许多代码样式违规,但是,最近,我遇到了需要扩展jshint自定义检查.我怎样才能做到这一点?它可以扩展吗?


我查看了文档,我发现的唯一一件事是如何编写一个不是我正在寻找的自定义记者.

作为一种变通方法,我想我可以派生jshint回购,实施检查,并在该项目保持从上游更新使用叉子.

javascript static-code-analysis jshint

11
推荐指数
2
解决办法
1224
查看次数

如何以编程方式执行Java IDE为方法引用执行的搜索?

您知道eclipse的所有引用功能(搜索>参考>工作区或Ctrl-Shift-G)吗?我该如何以编程方式运行?

我有一个庞大的代码库,我需要审计安全违规,并需要链接大约十几个条件.

是否有可以用Java分析大型项目(我有1GB的源文件)的库?这是我需要回答的问题:

  • 传入接口列表,找到这些接口的所有实现
  • 搜索该列表以获取我们的安全库的调用
  • 搜索上面列表中引用的每个方法,以确认已进行了正确的授权库调用.

我可以在一天内手动执行此操作,但宁可花2写一个漂亮的脚本来为我做这项工作.

我可以用来编写Eclipse的这些常见任务的脚本上的任何线索吗?理想情况下,我想执行命令行,因此它们可以重复和编写脚本,但显然会采取我能得到的.

java eclipse intellij-idea intellij-plugin static-code-analysis

10
推荐指数
1
解决办法
413
查看次数

使用自定义参数验证助手会破坏代码分析

我想使用自定义助手来简化参数验证,就像这样。

public static void ThrowIfNull(this object value, string parameterName)
{
    if (value == null)
    {
        throw new ArgumentNullException(parameterName);
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,静态代码分析当然不知道我在使用此帮助程序时确实验证了公共方法中的输入,因此它会给我CA1062有关未验证公共方法参数的错误。

特别的问题是这个

有没有办法代码分析器这个助手处理参数空验证?这个问题的正确解决方案是什么?

c# validation code-analysis static-code-analysis

10
推荐指数
1
解决办法
903
查看次数