我有一个C#用户控件项目导致间歇性的.NET运行时错误,一般错误,并想知道是否有任何代码分析工具,我可以指向我的.sln文件,它会告诉我可能导致我的错误
答案 0 :(得分:3)
有没有一种工具可以告诉你你做错了什么?
没有。这是编程乐趣的一部分。计算机程序不可能查看一段代码并明确确定所有错误是什么。
那里有工具可以告诉我程序错误吗?
是的,这些被称为静态分析工具。 FxCop是Microsoft提供的免费工具,可以对您的代码库进行大量的静态分析。
我不能100%确定独立版本是否可以指向.sln文件。但是很容易指出解决方案的构建输出。
答案 1 :(得分:1)
您需要的是静态代码分析工具 - 除了JaredPar提到的FXCop,还有others。
我最近发现的另一个选项是找出这样的问题的有用方法PEX,它可以进行白盒测试。因此,当您运行PEX探索时,它将尝试通过自动生成的单元测试在您的方法中发送大量值,这可能有助于查找由奇怪/意外数据引起的奇怪问题。
答案 2 :(得分:0)
但我不会将静态分析工具与调试器混淆,我相信你需要的是调试。换句话说,FxCop可能会告诉您一切都很好,但您仍然可以获得运行时异常。
运行时的一些错误很难通过查看代码(例如,多线程的竞争条件)来发现。因此,没有“代码分析工具”可以通过分析代码来实现运行时异常。
检查此链接以获取有关调试的一些示例:http://msdn.microsoft.com/en-us/library/ms954594.aspx。您可能需要使用调试器逐步完成代码,可能会将一些数据跟踪到日志文件,然后尝试找到错误的位置。
答案 3 :(得分:0)
就工具而言,FX Cop对于进行代码分析非常有用,并且它是免费的,但需要注意的是http://www.jetbrains.com/resharper/用于快速编码分析,它可以促进良好的开发实践。< / p>
但是这些可能是工作的错误工具,可能无法解决您的问题,代码可能在语法上是正确的但是有一个逻辑错误导致您的问题就像拼写检查器一样,所有单词我的拼写正确“外翻鸟是圆锥形的”意味着完全不同于“每个字都是正确的”。
您可能需要花一些时间在调试器中或使用某种形式的跟踪工具,例如dotTrace Profiler,Visual Studio Gallery上还有一些http://www.debuginspector.com/
答案 4 :(得分:0)
NDepend完全集成在VS2005,VS2008和VS2010中。因此,您只需将NDepend指向您想要分析的sln,NDepend将为您构建完整的报告。
只需点击几下,您就可以看到哪些类型取决于哪些类型等。这显然不会神奇地解决您的所有问题,但这可能会让您走上正确的轨道。