未来已来
DotNet的调试 一
上一篇 /
下一篇 2008-07-05 12:13:07
/ 个人分类:翻译文章
这是很久以前的一篇翻译文章。
Debug是整个软件开发过程中最痛苦的部分之一。我们不想说发现一个小bug是多么的困难-你可能已经都知道。软件中bug的数量是随着软件的复杂程度和经常没有及时修正bug而增长的。这些bug和软件的负责程度互相影响,使工程变得更加复杂。所以我们不断的监控和修改bug。
最好的办法是执行单元测试的时候来修正bug,当软件出现问题的时候,软件不会告诉我们哪里出现错误,为什么出现错误,我们的任务就是跟踪进程去解决他们。
这篇文章我们就是想告诉你怎样利用DotNet FrameWork来调试和跟踪让这个处理过程变得简单。我们将简要的告诉你怎么样有效的使用他们,并用结合例子说明。
跟踪
在这篇文章中首先要讨论的调试的策略是跟踪。跟踪是很强大的技术,因为他允许你看到应用程序的整个在运行期的整个行为,分析他是最有效的,尽管他不能提供需要的信息。
DotNet在System.Diagnostics名字空间中提供了跟踪的功能,正确的说是Trace Class
Trace是个静态类(这意味着所有的成员是静态的,你不需要初始化他来获得它的功能)
.产生一个断言(有条件或没有)
.根据提供的条件输出跟踪信息
.格式化跟踪输出信息
让我们从简要的成员方法开始研究:
public static void Assert(bool)
public static void Assert(bool,string)
public static void Assert(bool,string,string)
Assert方法显示一个失败信息(应用程序失败的时候显示信息,允许用户中断执行,忽略错误或者重新运行引起错误的代码),如果条件是false,两个重载函数允许显示指定的自定义一个或两个跟着的信息。(这些信息通过string参数设置,这么做允许开发者显示额外的断言失败的信息)
//Asertion Demo
//
//Purpose: To Demonstrate Results of Different Assert Method Calls
using System;
using System.Diagnostics
namespace Assertion
{
class Application
{
[STAThread]
static voidMain(string[] args)
{
//Simple assertion. No additional message
Trace.Assert(false);
}
}
}
程序将显示下面的消息对话框:
图
正如你看到的,仅仅是显示异常信息。没有显示任何上下文信息,所以我们不能看到失败的原因。下面,应用程序调用Assert方法用它的一个属性:
//Asertion Demo
//
//Purpose: To Demonstrate Results of Different Assert Method Calls
using System;
using System.Diagnostics
namespace Assertion
{
class Application
{
[STAThread]
static voidMain(string[] args)
{
//Simple assertion. No additional message
Trace.Assert(false,”Simple assertion Message”);
}
}
}
这个程序显示了一个更多信息的对话框。可以看到我们能提供的关于失败原因的信息。
调用有两个信息的Assert方法,组成更加详细的断言:
//Asertion Demo
//
//Purpose: To Demonstrate Results of Different Assert Method Calls
using System;
using System.Diagnostics
namespace Assertion
{
class Application
{
[STAThread]
static voidMain(string[] args)
{
//Simple assertion. No additional message
Trace.Assert(false,”Simple assertion Message”,”This message just an example.In real application you can provite detailed information here’);
}
}
}
你现在看到更加详细的信息:
图
收藏
举报
TAG:
翻译文章