未来已来

DotNet的调试 一

上一篇 / 下一篇  2008-07-05 12:13:07 / 个人分类:翻译文章

      这是很久以前的一篇翻译文章

      

       Debug是整个软件开发过程中最痛苦的部分之一。我们不想说发现一个小bug是多么的困难-你可能已经都知道。软件中bug的数量是随着软件的复杂程度和经常没有及时修正bug而增长的。这些bug和软件的负责程度互相影响,使工程变得更加复杂。所以我们不断的监控和修改bug

最好的办法是执行单元测试的时候来修正bug,当软件出现问题的时候,软件不会告诉我们哪里出现错误,为什么出现错误,我们的任务就是跟踪进程去解决他们。

这篇文章我们就是想告诉你怎样利用DotNet FrameWork来调试和跟踪让这个处理过程变得简单。我们将简要的告诉你怎么样有效的使用他们,并用结合例子说明。

跟踪

在这篇文章中首先要讨论的调试的策略是跟踪。跟踪是很强大的技术,因为他允许你看到应用程序的整个在运行期的整个行为,分析他是最有效的,尽管他不能提供需要的信息。

DotNetSystem.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: 翻译文章

 

评分:0

我来说两句

Open Toolbar