首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> C# >> C# 入門

C# 程式除錯實戰:Cordbg 命令列除錯器完整入門指南

     編輯:C# 入門

在 Visual Studio 整合式除錯器普及前,命令列除錯器 cordbg.exe 是 .NET Framework SDK 內建的輕量級除錯工具,類似 Linux 下的 gdb。雖然現代開發多用 IDE,但掌握命令列除錯有助於理解 CLR 執行模型、在無圖形介面伺服器環境排查問題、以及自動化測試腳本整合。本文以 .NET Framework SDK Beta 2 環境為例,完整示範從編譯、啟動除錯器、設定中斷點、單步執行到變數檢視的全流程。

一、環境與範例程式

// Test-1.cs
/* Data:2001-12-13 Author:龍山文化 */
using System;
class Test_1
{
    static void Main()
    {
        string str;
        Console.WriteLine("Please Enter Your Name. Thanks!");
        str = Console.ReadLine();
        Console.WriteLine("------------------------------------");
        Console.WriteLine("Dear " + str + ", Welcome To Csharps World!");
        Console.WriteLine("------------------------------------");
    }
}

編譯產生除錯資訊

csc /debug+ /out:Test-1.exe Test-1.cs
  • /debug+:內嵌 PDB 除錯符號(或產生獨立 .pdb 檔),必須開啟才能對應原始碼行號。
  • 產出 Test-1.exe 與 Test-1.pdb。

二、啟動 Cordbg 並載入程式

cordbg Test-1.exe

進入除錯器 Shell,提示符 cordbg>。

三、核心除錯指令速查表

指令縮寫說明範例
runr啟動/重新啟動程式run、run arg1 arg2
breakb設定中斷點break Test-1.cs:10、break Test_1.Main
steps單步進入step
nextn單步跳過next
outo跳出目前函式out
printp印出變數/運算式值print str、print this
locals列出所有區域變數locals
wherew顯示呼叫堆疊where
threads列出所有執行緒threads
continuec繼續執行至下一中斷點continue
deleted刪除中斷點delete 0(編號)
quitq離開除錯器quit

四、實戰操作流程示範

cordbg> break Test-1.cs:7      // 在 str = Console.ReadLine(); 設中斷點
Breakpoint 0 set at Test-1.cs:7

cordbg> run                    // 啟動程式
Process started. PID: 1234
Breakpoint 0 hit at Test-1.cs:7

cordbg> locals                 // 檢視區域變數
str = null

cordbg> step                   // 單步執行 ReadLine(會等待輸入)
// 在主控台輸入 "Alice" + Enter

cordbg> print str              // 檢視變數值
str = "Alice"

cordbg> continue               // 繼續執行至結束
Dear Alice, Welcome To Csharps World!
Process exited with code 0.

cordbg> quit

五、進階技巧

  • 條件中斷點:break Test-1.cs:7 if str == "Admin"(需支援版本)。
  • 例外攔截:catch System.Exception 讓除錯器在例外拋出時中斷。
  • 模組載入追蹤:modload 顯示已載入組件與路徑,排查版本衝突。
  • 記憶體檢視:dump 0x00ad1234 100 以十六進位顯示記憶體內容。

六、現代替代方案

工具適用場景特點
Visual Studio Debugger日常開發圖形化、IntelliTrace、熱重載、平行堆疊
dotnet-dbg (SOS/lldb)Linux/容器/核心傾印分析跨平台、支援 CoreCLR、可自動化腳本
WinDbg + SOS生產環境記憶體洩漏/死結分析強大但學習曲線陡峭
VS Code + C# Dev Kit輕量級跨平台編輯除錯免費、支援 .NET 6+

七、總結

  • 編譯必加 /debug+ 產生 PDB 符號。
  • cordbg 基本指令:break、run、step/next/out、print/locals、where、continue、quit。
  • 命令列除錯適合無頭伺服器、CI/CD 管線、自動化腳本場景。
  • 現代 .NET 開發首選 Visual Studio / VS Code / dotnet-dbg,但理解底層除錯原理有助於深層問題診斷。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved