标签: code-analysis

Misra标准的嵌入式软件

我要求制作大量符合MISRA标准的代码.
第一个问题:有人可以根据经验对嵌入式系统编写良好的代码进行估算.我理解"写得好"的定义很差,含糊不清,所以我要求进行原始估算.
第二个问题:任何可以自定义的工具建议(即允许抑制特定警告)并在自动构建环境中使用(即命令行界面)
任何其他有用的建议可以帮助完成此任务.
谢谢伊利亚.

c embedded code-analysis misra

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

Matlab:如何在路径上查找使用给定函数的函数

有时我需要改变函数的行为.有没有一种简单的方法来查找使用该函数的函数(在matlab路径上)?

matlab dependencies code-analysis

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

获取FxCop来抑制整个类型的警告?

如何抑制整个类型的FxCop警告?

namespace ConsoleApplication1
{     
    public static class Serializer<T>
    {
        public static string Serialize(T obj)
        {
            return string.Empty;
        }

        public static T Deserialize(string str)
        {
            return default(T);
        }
    }
Run Code Online (Sandbox Code Playgroud)

我尝试过这个,但它对我不起作用:

[assembly: SuppressMessage("Microsoft.Design",
    "CA1000:DoNotDeclareStaticMembersOnGenericTypes", Scope = "Type",
    Target = "ConsoleApplication1.Serializer'1")]
Run Code Online (Sandbox Code Playgroud)

.net c# code-analysis fxcop suppressmessage

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

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

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

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

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

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

.net recursion code-analysis static-code-analysis

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

CA1704 - 微软似乎阻止了"Multi"这个词?

public class MultiSomething { } //CA1704:IdentifiersShouldBeSpelledCorrectly
Run Code Online (Sandbox Code Playgroud)

当我运行代码分析时,我收到一个错误,因为Microsoft不识别"Multi"这个词(他们使用它的数字IMultiValueConverter).因此,我所做的是更正CodeAnalysisDictionary.xml文件,并按照此处提供的步骤操作.但是,它似乎没有解决问题,我仍然收到代码分析警告消息.

为了确保这不是识别的单词部分的错误,我添加了另一个类和另一个异常.

public class MultiSomething { } //CA1704:IdentifiersShouldBeSpelledCorrectly
public class MutiiSomething { } //NO WARNING

<Dictionary>
  <Words>
    <Recognized>
      <Word>Multi</Word> <-- This seems to not do anything... -->
      <Word>Mutii</Word> <-- This actually does something... -->
    </Recognized>
  </Words>
</Dictionary>
Run Code Online (Sandbox Code Playgroud)

修复它的另一种方法是使用SuppressMessage,虽然如果我打算在整个地方使用这个词,这不是一个很好的解决方案.

[SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Multi")]
public class MultiSomething { } //NO WARNING (Suppressed)
Run Code Online (Sandbox Code Playgroud)

微软是否真的阻止'Multi'被添加到已识别的单词中?

.net code-analysis fxcop casing ca1704

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

更正此代码的IDisposable实现

我有以下代码

public static byte[] Compress(byte[] CompressMe)
{
    using (MemoryStream ms = new MemoryStream())
    {
        using (GZipStream gz = new GZipStream(ms, CompressionMode.Compress,true))
        {
            gz.Write(CompressMe, 0, CompressMe.Length);
            ms.Position = 0;
            byte[] Result = new byte[ms.Length];
            ms.Read(Result, 0, (int)ms.Length);
            return Result;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这工作正常,但是当我对它运行代码分析时,它会出现以下消息

CA2202 : Microsoft.Usage : Object 'ms' can be disposed more than once in 
method 'Compression.Compress(byte[])'. To avoid generating a 
System.ObjectDisposedException you should not call Dispose more than one 
time on an object.
Run Code Online (Sandbox Code Playgroud)

就我而言,当GZipStream为Disposed时,由于构造函数的最后一个参数(leaveOpen = true),它会使底层Stream(ms)保持打开状态.

如果我稍微改变我的代码..删除MemoryStream周围的'using'块并将'leaveOpen'参数更改为false.

public static …
Run Code Online (Sandbox Code Playgroud)

.net c# code-analysis idisposable

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

Java代码分析工具

可能重复:
Java的静态分析工具建议?

我必须找到一个可以用用户定义的规则定制的java代码分析或检查工具.实际上,我必须在我的工作区中将一些静态代码设置为非静态代码.一个工具,我可以写一些规则,如果在整个工作区遇到这样的代码,然后做一些事情.

谁能提出一些建议.

java code-analysis

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

为什么Codan不能找到size_t

我刚刚开始使用Eclipse Indigo(来自Galileo),并且每次使用size_t时,我都会在排水沟中得到小红虫.

在此输入图像描述

代码编译没有问题,但我怀疑我必须显式添加包含目录的路径.我已经有了通常的嫌疑人.我正在使用Gnu工具链对ColdFire处理器进行交叉编译,所以除了标准包括我在m68k-elf下包含的芯片的mfg

\include  
\include\c++\4.2.1
\include\c++\4.2.1\include
\include\c++\4.2.1\m68k-elf
Run Code Online (Sandbox Code Playgroud)

更新

我注意到这个工具链唯一存在的stddef.h位于lib目录中

gcc-m68k\lib\gcc\m68k-elf\4.2.1\include
Run Code Online (Sandbox Code Playgroud)

我添加了路径,父路径和父路径,\include-fixed但问题仍然存在.

关于测试的说明

当测试哪些有效,哪些无效时,我注意到了一些事情

  1. 修改代码分析首选项设置时,代码分析不会重新触发,我仍然需要更改编辑器(只需添加一个空间)
  2. 关闭代码分析设置Symbol is not resolved不会使错误消失.
  3. 关闭所有Syntax and Semantic Errors,触发分析,返回并重新打开然后关闭Symbol is not resolved可防止错误再次出现.

c++ eclipse code-analysis eclipse-cdt coldfire

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

从异常类派生警告:CA2237:使用SerializableAttribute标记ISerializable类型

我从各种异常中派生了几个类.现在vs在这个问题的标题中发出警告.

有人可以解释抑制这条规则的含义吗?

2.你能解释一下这里的规则 吗?"不要为了这个规则而禁止对异常类发出警告,因为它们必须是可序列化的,才能跨应用程序域正常工作."?

谢谢.

PS嗯,我自己也得到了答案.您确实必须将异常标记为可序列化.它们在同一AppDomain中没有此属性的情况下工作正常.但是,如果您尝试从其他域捕获它,则必须进行序列化才能跨越应用程序边界.这就是我找到的主要原因.

.net code-analysis exception compiler-warnings

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

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
查看次数