标签: code-analysis

有没有办法找出C函数的顶级调用者?

假设我有来自许多不同地方的称为LOT的功能.所以我想找出谁最能称这个功能.例如,前5个呼叫者或曾经调用此功能超过N次.

我使用的是AS3 Linux,gcc 3.4.

现在我只是放了一个断点,然后每隔300次停在那里,这样就强行了......

有谁知道可以帮助我的工具?

谢谢

c c++ optimization code-analysis

5
推荐指数
2
解决办法
457
查看次数

如何解析C#程序集并提取每个方法

对于我的应用程序,我想解析一个程序集并提取每个方法,并将方法的名称和源代码存储在我的一个对象中(我在我的代码中定义).

我应该在哪里开始实施?

编辑:从答案和评论我看到从程序集中获取源代码并不是那么容易.那么如果我想从当前解决方案中不存在的源代码文件中获取源代码(visual studio),我应该从哪里开始?

c# methods code-analysis assemblies static-code-analysis

5
推荐指数
1
解决办法
6576
查看次数

Java代码分析/度量工具

我正在寻找一个免费的Java代码分析/度量工具,我可以用它来查看类依赖性,方法执行时间等,并可能打印出一个显示它们的图表.我目前正在ANT中使用jdepend任务来实现这一目标,但我认为必须有一个更好的工具来处理这类事情.如果它与Netbeans集成,我也更喜欢,因为我宁愿不将我的所有项目移植到Eclipse来完成分析任务.我曾尝试使用Visual Paradigm的社区版本,但是当它在社区版本中不提供代码同步时,我很快就厌倦了它.虽然如果确实如此,我可以再给它一次.我也试过BOUML,但它似乎更像是一个UML设计工具,而不是现有的代码分析器.所以,我的问题是,你们用什么来进行Java代码分析?谢谢!

编辑:例如,JDepend测量一些指标,可以绘制一个漂亮的小依赖图,但它没有完全具有UI或任何东西.我想我正在寻找一个工具,可以绘制出我所有的类和它们之间的依赖关系(jdepend只做包AFAIK)以及在类之间调用的方法,并提供一个度量数字"有多好代码结构是".如果问题含糊不清,我很抱歉,我只是在寻找各种选项,而且我对代码度量工具并没有很多经验...

java netbeans code-analysis jdepend code-metrics

5
推荐指数
1
解决办法
4811
查看次数

代码分析避免过度复杂-只需设置命令

我有一个带有16个按钮的WPF表单。当我的视图模型初始化时,我需要将全部16个设置为RelayCommand对象。这是我的Initialize()方法所做的全部,但是却导致代码分析错误CA1502:AvoidExcessiveComplexity。

这是抑制CA警告的一个好案例,还是有一种更优雅的方式来设置这些命令而不引起CA违规?

[SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity", Justification = "Simply setting the commands")]
private void Initialize()
{
    this.AddApplicationCommand      = new RelayCommand(_ => AddApplication());
    this.DeleteApplicationCommand   = new RelayCommand(_ => DeleteApplication(), _ => ApplicationIsSelected);
    this.RefreshApplicationsCommand = new RelayCommand(_ => RefreshApplications());
    this.SaveApplicationCommand     = new RelayCommand(_ => SaveApplication(), _ => ApplicationIsSelected);

    this.ForceInstallationCommand       = new RelayCommand(_ => ForceInstallation(), _ => ApplicationIsSelected);
    this.DeleteForceInstallationCommand = new RelayCommand(_ => DeleteForceInstallation(), _ => ApplicationIsSelectedAndForceExists());

    this.AddTaskCommand            = new RelayCommand(_ => AddTask(), _ => ApplicationIsSelected);
    this.EditTaskCommand           = new RelayCommand(_ => EditTask(), _ => TaskIsSelected()); …
Run Code Online (Sandbox Code Playgroud)

c# maintainability code-analysis

5
推荐指数
1
解决办法
1398
查看次数

为什么使用偏离发送方和eventargs的事件处理程序方法签名是个坏主意?

VS 2012中的代码分析工具提出了我的代码的一些问题.大多数都很好,这一个(CA1009正确声明事件处理程序)然而我无法理解其推理.

如果我不需要任何数据,只是为了知道发生了什么事情,在我看来,我通过使用不需要参数的事件来模糊我的真实意图.

例如,假设我要列出符合给定条件的所有客户.如果我的存储库已更新,我需要重新检查数据.

所以我创建了一个存储库类,然后给它一个带有以下签名的DataChanged事件:

public event Action DataChanged;
Run Code Online (Sandbox Code Playgroud)

然后在其中一个使用repo的类中,我可以做

repository.DataChanged += UpdateMatchingCustomers;

private void UpdateMatchingCustomers() {
    MatchingCustomers = ...
}
Run Code Online (Sandbox Code Playgroud)

为什么这是一个坏主意?

c# code-analysis event-handling

5
推荐指数
1
解决办法
1563
查看次数

是什么导致'CA2202:不要多次丢弃对象'在这段代码中,我该如何重构?

我有下面的函数,用于序列化对象而不添加XML声明.我刚刚打开了包含Visual Studio 2012的项目,而Code Analysis正在提出'CA2202:不要多次丢弃对象'警告.

现在在其他情况下,我通过删除[对象]来修复此警告.不需要关闭.但在这种情况下,我无法看到需要更改的内容,并且在准确时对警告的帮助并不完全正确有关如何引起或如何解决它的信息.

究竟是什么导致警告显示,我如何重构以避免它?

''' <summary>
''' Serialize an object without adding the XML declaration, etc.
''' </summary>
''' <param name="target"></param>
''' <returns></returns>
''' <remarks></remarks>
Public Shared Function SerializeElementToText(Of T As New)(target As T) As String
    Dim serializer As New XmlSerializer(GetType(T))
    'Need to serialize without namespaces to keep it clean and tidy
    Dim emptyNS As New XmlSerializerNamespaces({XmlQualifiedName.Empty})
    'Need to remove xml declaration as we will use this as part of a larger xml file …
Run Code Online (Sandbox Code Playgroud)

vb.net code-analysis visual-studio

5
推荐指数
1
解决办法
1734
查看次数

Coverity扫描设置?

Coverity为免费和开源项目提供免费扫描服务(http://scan.coverity.com).我正在尝试根据Download Coverity Scan Self-Build配置扫描项目.从他们的网页:

对于每个构建:

  1. cd到您的构建目录

  2. 可选:运行您不想分析的任何构建步骤 - 即./configure

  3. cov-build --dir cov-int [BUILD CMD和ARGS]

我有三个问题:

  • 被make认为是用于这些目的的构建脚本?或者它是[BUILD CMD和ARGS]的一部分

  • 他们的构建奴隶是否包含诸如Boost之类的库?我们对库有[不受欢迎的]依赖

  • 扫描服务需要什么配置?调试,测试还是发布?

c c++ code-analysis coverity

5
推荐指数
1
解决办法
6259
查看次数

如何从MSBuild代码分析中获取XML报告

/p:RunCodeAnalysis=true在C#项目上运行MSBuild会在构建输出上生成代码分析警告,但是什么是允许我将这些警告(仅代码分析警告而不是整个构建输出)导出到XML文件的开关?

c# msbuild code-analysis visual-studio

5
推荐指数
1
解决办法
4252
查看次数

声纳未分析某些文件“文件中遇到无效字符”

我有几个文件未通过以下消息进行分析:

第9行的文件[具有完整路径的文件名]中遇到无效字符,无法对UTF-8进行编码。请修复文件内容或使用属性“ sonar.sourceEncoding”配置要使用的编码。

在Visual Studio中,当我选择“文件” /“高级保存选项”时,文件设置为“西欧(Windows)-代码页1252”。

我将其更改为Unicode(带签名的UTF-8)-代码页65001。

但是SonarQube仍然抱怨无效字符。“无效字符”是德语注释,带有Umlaut字符(ä,ö,ü)

我该怎么做才能解决此问题(不删除评论)?

c# code-analysis utf-8 sonarqube

5
推荐指数
1
解决办法
5528
查看次数

为什么我不鼓励不止一次调用Dispose()?

这个问题描述了与CA2202相同的场景,如何解决这种情况,但它不是关于如何修复代码,而是关于为什么首先出现问题.

以下代码:

using (Stream stream = obtainStreamObject())
{
    using (var reader = new XmlTextReader(stream))
    {
        //do something with XmlTextReader
    }
}
Run Code Online (Sandbox Code Playgroud)

原因Stream.Dispose()叫两次.首先,内部using块会崩溃,这会调用XmlTextReader.Dispose()哪些调用Stream.Dispose().然后外部using块崩溃并Stream.Dispose()再次被调用.

所以,我必须换Stream到using,但不换行XmlTextReader到using,尽管他们都实现IDisposable.

这会产生CA2202警告

不要多次处理对象对象'stream'可以在方法'MethodName(whatever)'中多次处理.为避免生成System.ObjectDisposedException,不应在对象上多次调用Dispose.

好吧,它说第二个Dispose()可能会屈服ObjectDisposedException.这有什么意义?为什么我会这样实现Dispose(),当它第二次被调用它会抛出异常而不是什么都不做?

.net c# code-analysis idisposable using-statement

5
推荐指数
0
解决办法
414
查看次数