代码之家  ›  专栏  ›  技术社区  ›  anon

C代码分析-vs 2005

  •  3
  • anon  · 技术社区  · 15 年前

    我有一个C用户控制项目,它会导致间歇性的.NET运行时错误,一个一般性错误,我想知道是否有任何代码分析工具可以指向我的.sln文件,告诉我可能是什么导致了我的错误

    5 回复  |  直到 14 年前
        1
  •  3
  •   JaredPar    15 年前

    有没有工具能告诉你你做错了什么?

    不。这是编程乐趣的一部分。计算机程序不可能查看一段代码并确定所有的错误是什么。

    有没有工具可以告诉我我的程序做错了什么?

    是的,这些称为静态分析工具。fxcop是微软提供的一个免费工具,它可以对你的代码库进行大量的静态分析。

    我不确定独立版本是否可以指向.sln文件。但它很容易指向解决方案的生成输出。

    http://msdn.microsoft.com/en-us/library/bb429476.aspx

        2
  •  1
  •   Robert MacLean    15 年前

    你需要的是一个静态代码分析工具-除了jaredpar提到的fxcop others .

    我最近发现的另一个有用的方法是 PEX 进行白盒单元测试。因此,当您运行pex explorations时,它将尝试通过其自动生成的单元测试向您的方法发送许多值,这可能有助于发现奇怪/意外数据导致的奇怪问题。

        3
  •  0
  •   vgru    15 年前

    但我不会把静态分析工具和调试器混淆起来,我相信这里需要的是调试。换句话说,fxcop可能会告诉您一切都很好,但您仍然可以得到运行时异常。

    运行时中的一些错误很难通过查看代码(例如,多线程的竞争条件)来发现。因此,没有“代码分析工具”可以通过简单地分析代码而导致运行时异常。

    有关调试的一些示例,请检查此链接: http://msdn.microsoft.com/en-us/library/ms954594.aspx . 您可能需要使用调试器对代码执行一些单步操作,可能需要将一些数据跟踪到日志文件,然后尝试找出错误的确切位置。

        4
  •  0
  •   Bob The Janitor    15 年前

    就工具而言 FX Cop 很适合做代码分析,而且它是免费的,但是还有其他的东西要看 http://www.jetbrains.com/resharper/ 进行即时代码分析,并促进良好的开发实践。

    但这些可能是错误的工具,并不能解决你的问题,代码可能语法正确,但有一个逻辑错误,导致你的问题,它就像一个拼写检查器,所有我拼写正确的单词“evert bird is con锥形”的意思与“每个单词都是正确的”完全不同。

    您可能需要在调试器中花费一些时间,或者使用某种形式的跟踪工具,如 dotTrace Profiler 还有几个在外面 Visual Studio Gallery 喜欢 http://www.debuginspector.com/

        5
  •  0
  •   vaucouleur    14 年前

    NDepend 在VS2005、VS2008和VS2010中完全集成。因此,您可以简单地将ndepend指向要分析的sln,ndepend将为您构建一个完整的报告。

    只需点击几下,您就可以看到哪些类型取决于哪些类型,等等。这显然不会神奇地解决您的所有问题,但这可能会让您走上正确的道路。