如何调试你的C#程序(3)

如何调试你的C#程序(3)


作者: 龙山文化  &;nbsp来自:网络


                第三步:调试你的程序;(下面的出现的将是调试程序的时候所有的代码,请注意我的注释是加在后面的)
 
  (cordbg)sh 18
  001: /*
  002: 'Data:2001-12-13
  003: 'Author:龙山文化
  004: 'One Csharp Test Program
  005: */
  006: using System;
  007: class Test_1
  008: {
  009: static void Main()
  010: {
  011: string str;
  012:* Console.WriteLine("Please Enter Your Name. Thanks!");
  013: str=Console.ReadLine();
  014: Console.WriteLine("------------------------------------\r\n");
  015: Console.WriteLine("Dear " str ", Welcome To Csharp's World!\r\n");
  016: Console.WriteLine("------------------------------------\r\n");
  017: }
  018: }
 
    /*"sh" 命令是查看被调试程序源代码的,其实这个源代码还是从Test-1.cs中装载的,如果你的Test-1.cs不存在的话,在装载被调试的程序的时候会出现如下错误代码:
 
    "Error loading source file 'E:\Cs\Test-1.cs': File not found"
 
     当然程序还是可以运行的。只不过原来的最后一行的C#代码显示,变成了汇编代码的显示。关于汇编方式的显示我将在后面的文章中加以介绍。
  */
 
  (cordbg) b 12
  Breakpoint #1 has bound to E:\Cs\Test-1.exe.
  #1 E:\Cs\Test-1.cs:12 Main 0x0(il) [active]
  … …
 
    /*通过b 命令设置了程序断点,天啦!你不要告诉我连什么是断点都不知道哟。如果你不知道的话,那么老大你还是不要看了吧。
 
    设置断点调试程序调试程序最重要的一个方法
 
    b 命令也可以查看所有已经被设置的断点,如下所示
 
  */
  (cordbg) b
  #1 E:\Cs\Test-1.cs:12 Main 0x0(il) [active]
  #2 E:\Cs\Test-1.cs:13 Main 0xa(il) [active]
  #3 E:\Cs\Test-1.cs:14 Main 0x10(il) [active]
  (cordbg) con
  Please Enter Your Name. Thanks!
  break at #2 E:\Cs\Test-1.cs:13 Main 0xa(il) [active]
 
  013: str=Console.ReadLine();
  /*
 
    con 命令表示继续执行程序代码,一直执行到下一个断点,本来程序被装载后默认设置了一个断点,在使用sh命令察看源代码的地方某行代码的序号被加了一个"*",这行代码就算是系统默认的断点设置。
 
    另外有个"next" 命令也可以用来调试,但是表示执行到下一行,而不是下一个断点行。请注意区分,你也可以实际的操作来看看具体的效果
 
  */
  (cordbg) con
  龙山文化
  break at #3 E:\Cs\Test-1.cs:14 Main 0x10(il) [active]
  014: Console.WriteLine("------------------------------------\r\n");
  (cordbg) p str
  str=(0x00ba3414) "龙山文化"
  /*
 
    上面的调试代码利用 con命令执行到下一个断点:获得了一个系统输入字符串"龙山文化"
 
    并且利用"p" 命令打印出了变量"str"中的数据,在调试程序的时候打印程序中的程序变量是很关键的动作。
 
  */
  (cordbg) con
  ------------------------------------
 
  Dear 龙山文化, Welcome To Csharp's World!
 
  ------------------------------------
 
  [thread 0x5fb0] Thread created.
  [thread 0x59a8] Thread exited.
  Process exited.
  /*
  con执行下一个断点后,程序运行到结束。
  */
 
    到这步为止,一个最简单的C#程序就通过Cordbg通过最简单的方式调试完成了,在后面的文章中我将会给你展示更加复杂的程序的调试
    (2005-9-10:06:07)
 感谢原创者的辛勤劳动,希望对您有所帮助,转载请注明原出处。
 警告:持续变种木马正在发起农历新年攻势!
 您可能对 [C#] 的这些文章也感兴趣:
C# 实现屏幕键盘 (ScreenKeyboard)
删除DataTable中的重复行
利用C#打开SolidWorks2008的.SLDPRT文件
C#利用钩子控制鼠标
C#中的readonly(运行时常量)与const(编译时常量)的区别
C#文件操作:上传 下载 删除
Images到xps,pdf的转换
C#争论:什么时候应该使用var?
C#读取和写入word2003的书签内容
通用类实现DataGridView自动添加合计行
C#实现窗体和任意控件的拖动
C#实现的QQ登录器