前兩課建立了專案架構與編輯技巧,本課將聚焦 VC++ 6.0 強大的除錯視窗,帶你一窺程式執行時的記憶體、暫存器與組合語言真面目——這正是 C/C++ 做系統級開發的核心優勢。
View → Debug Windows → Registers — 即時顯示 CPU 所有通用暫存器(EAX, EBX, ECX, EDX...)、旗標暫存器(EFLAGS)、指令指標(EIP)等數值。單步執行時觀察暫存器變化,能精確理解指令如何操作資料。
View → Debug Windows → Memory — 以十六進位/ASCII/浮點數等格式檢視任意位址的記憶體內容。支援直接輸入變數名稱或位址運算式(如 &arr[0]),是分析緩衝區溢位、結構體記憶體佈局、堆疊破壞的神器。
View → Debug Windows → Call Stack — 顯示目前函式呼叫鏈,包含各層回傳位址、參數值、區域變數。雙擊任一幀即可跳轉至對應原始碼,快速追溯「誰呼叫了這個函式」。
View → Debug Windows → Disassembly — 將機器碼還原為組合語言,並對應原始碼行號。這是理解編譯器優化、函式呼叫慣例、參數傳遞機制(堆疊 vs 暫存器)的最佳教材。


Java 等高階語言為了安全性與跨平台,刻意屏蔽了記憶體位址、暫存器、指令指標等底層細節。而 C/C++ 讓開發者直接操作硬體資源,配合除錯視窗可觀測每一條指令的副作用。這種「白箱可見性」是寫作業系統、驅動程式、嵌入式韌體、高效能伺服器的前提。
軟體不會壞,大膽點擊、拖曳、輸入位址去探索。除錯視窗是通往電腦系統本質的顯微鏡,善用它,你會比只會寫上層邏輯的開發者更早觸及計算機科學的核心真理。