1. 程式人生 > >C#中除錯和錯誤的處理

C#中除錯和錯誤的處理

正常模式下的除錯

1,在vs中使用Console.Write(或者WriteLine)方法向控制檯輸出變數的值,通過這種形式來觀察變數的值是否符合預期。

2,在Unity中可以使用Debug.Log(“”) Debug.LogError(“”) Debug.LogWarn(“”),想Unity的Console視窗輸出資訊,方便進行除錯錯誤。

中斷模式下的除錯

通過斷點的設定,暫停程式的執行。
斷點是什麼?即原始碼自動進入終端模式的一個標記。
如何插入斷點?

  1. 右鍵程式碼,選擇breakpoint,insert breakpoint。
  2. 游標移動到程式碼行,選單欄中選擇Debug,Toggle Breakpoint。
  3. 游標移動到程式碼行,按下F9設定斷點,再按下取消斷點。
  4. 在需要新增斷點的行首位置,單擊設定斷點,再次單擊取消斷點。

斷點處選擇的行是不執行的。斷點資訊在斷點視窗中可以檢視、定位、刪除斷點。

如何在中斷模式下檢視變數的值?
滑鼠直接移動到變數名上就可以檢視,或者在斷點視窗中可以看到變數的值。
這裡寫圖片描述
這裡寫圖片描述
區域性變數中顯示當前環境下所有區域性變數目前(斷點執行)的值。
這裡寫圖片描述
監視可以監視特定變數的值。
這裡寫圖片描述
假如在定義的函式中設定斷點,我們可以在呼叫堆疊中看到:
這裡寫圖片描述
呼叫堆疊顯示當前行是由哪個函式呼叫過來的。
而對於即時視窗,可以手動的輸入變數名稱來檢視目前環境下的變數。
這裡寫圖片描述
這裡寫圖片描述
第一個res查詢失敗,是因為查詢第一個時斷點設定在了Fun中,該環境下沒有res變數。

同時,在區域性變數或者即時視窗,都可以直接對當前的值進行修改、重新賦值。

逐語句逐過程

  1. 逐語句
    一條一條語句的去執行,在遇到函式等其他語句時,會調到函式中,接著逐語句的去執行,當函式執行完畢再跳回來,就是程式一卡一卡的去執行。

  2. 逐過程
    也是一條一條的去執行,但是是流水式的去執行,把函式當一條語句去執行,不會有跳轉這種行為。相當於從斷點一直刷到最後,沒有什麼邏輯在其中。