标签: code-analysis

忽略Visual Studio中的代码分析规则

如何在以下内容中忽略特定的VS代码分析规则(例如CA1305:Microsoft.Globalization):

  • 方法?
  • 类?
  • 命名空间?

(假设这些选项都是可能的.)

code-analysis visual-studio-2008 visual-studio

6
推荐指数
2
解决办法
5689
查看次数

将BCI(字节码索引)转换为源代码行号

我正在编写JVMTI代码来编写Java程序,这主要是使用函数AsyncGetCallTrace以固定的时间间隔从随机线程获取堆栈跟踪.因此,我能够获得CallTrace结构,每个结构都包含一个CallFrame结构数组,其中包含有关堆栈跟踪中各个帧的数据.具体来说,这些数据包括:jmethodID method_id(框架所在的java方法的ID),以及:jint lineno(.class文件中方法的BCI,据我所知文档).我似乎找不到使用JVMTI框架将这个"lineno"转换为相应的源代码行号的方法(参见文件jvmti.h,位于/ usr/lib/jvm/java-6-sun/include,至少在Linux上).实际上,即使在JVMTI框架之外,http://jakarta.apache.org/bcel/apidocs/org/apache/bcel/classfile/LineNumberTable.html,但即使这可能不是我想要的,并需要额外的安装,并要求我处理数据,这是由C++ JMVTI代码生成的,使用单独的Java程序.

如果有人知道如何从JVMTI内部(甚至以任何方式)将BCI转换为源代码行号,请帮忙!

[如果有人非常了解这个领域,请告诉我,因为我还有一些问题要问这个过程.]

code-analysis line-numbers jvmti

6
推荐指数
1
解决办法
1257
查看次数

.NET可移植性警告:CA1901 PInvoke声明应该是可移植的

当我在代码中添加以下行时

[DllImport("user32.dll")]
static extern void keybd_event(byte key, byte scan, int flags, int extraInfo);
Run Code Online (Sandbox Code Playgroud)

并针对Microsoft Basic Correctness Rules运行代码分析,我收到CA1901警告.基本上,它抱怨第4个参数int extraInfo在32位平台上工作正常,但在64位平台上预计会有64位整数类型.

当我将代码修改为long extraInfo时,满足64位平台要求,但32位平台需要32位整数.

如何在不压制警告的情况下解决这一难题?

.net pinvoke code-analysis portable-applications

6
推荐指数
1
解决办法
1093
查看次数

代码分析规则CA2000/CA2202

我正在努力确保我的编码遵循正确的对象处理方式,因此我将这些规则强制执行为错误.但我在使用这段代码时遇到了麻烦

using System;
using System.IO;
using System.Runtime.Serialization;
using System.Xml;

class MyClass
{  
    public String ToXml()
    {
        var objSerializer = 
            new DataContractSerializer(GetType());
        var objStream = new MemoryStream();
        StreamReader objReader;

        String strResult;
        try
        {
            // Serialize the object
            objSerializer.WriteObject(objStream, this);

            // Move to start of stream to read out contents
            objStream.Seek(0, SeekOrigin.Begin);

            objReader = new StreamReader(objStream);

            try
            {
                // Read Contents into a string
                strResult = objReader.ReadToEnd();
            }
            finally
            {
                objReader.Dispose();
            }
        }
        finally
        {
            if (objStream != null)
            {
                // objStream.Dispose(); …
Run Code Online (Sandbox Code Playgroud)

c# code-analysis stylecop

6
推荐指数
1
解决办法
1754
查看次数

抑制代码分析应用程序错误

我们的winform应用程序引用的Crystal库会导致代码分析出错:

警告1 CA0060:找不到间接引用的程序集"BusinessObjects.Licensing.KeycodeDecoder,Version = 13.0.2000.0,Culture = neutral,PublicKeyToken = 692fbea5521e1304".分析不需要此装配,但分析结果可能不完整.此程序集由以下引用引用:C:\ Program Files\SAP BusinessObjects\Crystal Reports for .NET Framework 4.0\Common\SAP BusinessObjects Enterprise XI 4.0\win32_x86\dotnet\CrystalDecisions.CrystalReports.Engine.dll.

在一些不同的主题中,SAP" 支持 "承认这是他们的问题(http://scn.sap.com/thread/2153539),尽管他们很快指出它不会影响他们的产品直接,所以修复它是低优先级的.它被分配了参考号ADAPT01629826,但它们似乎仍然在空中直到他们真正解决问题的时候.

这是代码分析应用程序警告(http://msdn.microsoft.com/en-us/library/ms245349.aspx),而不是正常的代码分析警告.

因此,Visual Studio不提供通常的"Suppress Message(s)"上下文菜单.我希望有一种方法可以使用GlobalSuppressions或类似的东西,但可以使用一些帮助......

即使SAP对坏装配参考没有对其产品产生功能影响是正确的,它仍然困扰着我.与原始海报一样,我不希望代码分析出现任何错误/警告.

我相信其他人已经碰到了这个 - 或者至少是类似的东西.你是怎么处理的呢?有没有办法从代码分析中排除这个特定的警告,所以它不再显示?

虽然我不喜欢硬编码排除,但它似乎比等待SAP实际推出修复更可靠的解决方案.

sap code-analysis visual-studio-2010 crystal-reports

6
推荐指数
1
解决办法
476
查看次数

CA2000和依赖注入

我正在使用一个相当简单的DI模式将我的数据存储库注入到我的控制器类中,并且我在每个模式下都获得了CA2000代码分析警告(在丢失范围之前Dispose对象).我知道为什么警告正在发生,并且通常可以弄清楚如何解决它,但在这种情况下我无法弄清楚

  1. 如何在对象创建和返回方法之间抛出异常,或者
  2. 在哪里我可以放try/finally块来摆脱错误.

在我放弃并抑制所有地方的警告信息之前,有没有更好的方法来实现同样的效果,而不会导致潜在的不受干扰的对象?

public class AccountController : Controller
{
    public AccountController () 
        : this(new SqlDataRepository()) 
    {
    }

    public AccountController ( IDataRepository db )
    {
        this.db = db ?? new SqlDataRepository();

        // Lots of other initialization code here that I'd really like
        // to avoid duplicating in the other constructor.
    }

    protected override void Dispose(bool disposing)
    {
        if (disposing && (this.db != null))
        {
            IDisposable temp = this.db as IDisposable;
            if (temp != null)
            {
                temp.Dispose();
            }
        } …
Run Code Online (Sandbox Code Playgroud)

c# code-analysis asp.net-mvc-3

6
推荐指数
1
解决办法
206
查看次数

有什么理由不在生产版本中启用CODE_ANALYSIS?

在生产(发布)版本中启用静态代码分析时是否存在任何性能成本?

我们的CI服务器在C#项目的调试版本上运行代码分析,而发布版本禁用静态代码分析(即未定义CODE_ANALYSIS).如果没有理由在生产版本上禁用代码分析,那么我就是在浪费时间进行调试构建.

反射器向我显示,SuppressMessage如果禁用代码分析,则排除属性,但我不希望额外属性影响运行时性能.这是启用静态代码分析的唯一效果(在Visual Studio 2013中)吗?

c# code-analysis fxcop

6
推荐指数
1
解决办法
1635
查看次数

Sonar 4.2在同一个项目中分析Java和JavaScript

我正在尝试用Sonar 4.2分析我的JEE项目.这是一个使用Java和JS的多语言JEE项目.

我添加到Sonar 4.2的插件是:Java 2.1和JavaScript 1.6.

近日,声纳增加了多语言的分析,下面的文档,我已经去除了sonar.language从sonar-project.properties.但它仍然只分析Java.

我在Jenkins 1.555中使用Sonnar Runner 2.3.它在每次构建后分析项目.

我错过了什么吗?

编辑:sonar-project.properties:

# Required metadata
sonar.projectKey=myProjectKey
sonar.projectName=MyProject
sonar.projectVersion=1.0

# Path to the parent source code directory.
# Path is relative to the sonar-project.properties file. Replace "\" by "/" on Windows.
# Since SonarQube 4.2, this property is optional. …
Run Code Online (Sandbox Code Playgroud)

javascript java multilingual code-analysis sonarqube

6
推荐指数
1
解决办法
7245
查看次数

Sonarqube没有注册任何c#问题

自上周五(2016年1月4日)以来,我们在公司使用sonarqube.不知何故,我们项目的一个问题全部关闭(实际上没有修复).现在该项目没有得到任何问题.我们甚至在sonarqube中删除了项目并重新开始分析,这也没有给出任何问题.

我们尝试了很多不同的东西来解决问题(甚至故意制造错误,但这也不会在sonarqube中产生任何问题)

我们正在运行最新版本的sonarqube(版本5.4),我们从TFS 2015开始我们的分析(使用sonarqube开始和结束构建步骤)

知道为什么sonarqube没有重新解决这个项目中的任何问题吗?而其他项目工作正常吗?

更新:

在我们为此版本启用代码覆盖后,会发生这种情况.但禁用代码覆盖率不会导致问题回复(甚至在删除sonarqube项目后也没有)

更新2:

开始记录

2016-04-01T13:52:46.3608006Z Executing the powershell script: D:\TFS\Agents\tasks\SonarQubePreBuild\1.0.34\SonarQubePreBuild.ps1 
2016-04-01T13:52:48.8767055Z ##[debug]
2016-04-01T13:52:49.1486023Z SonarQube Scanner for MSBuild 1.1
2016-04-01T13:52:49.2491975Z Default properties file was not found at D:\TFS\Agents\tasks\SonarQubePreBuild\1.0.34\MSBuild.SonarQube.Runner-1.1\SonarQube.Analysis.xml
2016-04-01T13:52:49.2491975Z Pre-processing started.
2016-04-01T13:52:49.2501934Z Preparing working directories...
2016-04-01T13:52:49.2501934Z Checking for updates... 
2016-04-01T13:52:49.4643435Z SonarQube Scanner for MSBuild Begin Step 2.0 
2016-04-01T13:52:49.4653311Z 15:52:49.298  Default properties file was not found at D:\TFS\Agents\_work\2\.sonarqube\bin\SonarQube.Analysis.xml
2016-04-01T13:52:49.4812668Z 15:52:49.318  Updating build integration targets...
2016-04-01T13:52:49.5728988Z 15:52:49.34  Fetching analysis configuration settings... 
2016-04-01T13:52:50.6017668Z 15:52:50.48  Generating rulesets... 
2016-04-01T13:52:52.4025329Z 15:52:52.298  Provisioning …
Run Code Online (Sandbox Code Playgroud)

.net code-analysis sonarqube

6
推荐指数
1
解决办法
3121
查看次数

我可以制作自定义的matlab代码分析器警告吗?

关于如何纠正错误和低效率的matlab代码分析器有很多很好的建议,但我有时会遇到我想被分析器捕获的情况.具体来说,我正在考虑如下代码:

if numel(list > x)
  ...
end
Run Code Online (Sandbox Code Playgroud)

我无法想到我需要使用上述代码的任何情况,而以下代码:

if numel(list) > x
  ...
end
Run Code Online (Sandbox Code Playgroud)

经常使用.

我查看了代码分析器可能警告我的可能事项列表,但我没有发现这种可能性.

所以我的问题是:是否可以将自己的警告添加到代码分析器中,如果可以,如何添加?

我意识到,如果可能这可能是一项艰巨的任务,那么对于特定问题的任何替代方案或解决方案建议也将受到赞赏!

matlab code-analysis

6
推荐指数
1
解决办法
95
查看次数