程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 如何調試你的C#程序(2)

如何調試你的C#程序(2)

編輯:關於C語言

/*"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通過最簡單的方式調試完成了,在後面的文章中我將會給你展示更加復雜的程序的調試

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved