1. 先在你的原始程式碼中設定一個「中斷點 (breakpoint)」。「中斷點」代表等一下執行程式時會在這個「中斷點」上暫停程式的執行。如下圖所示在第 10 行新增了一個「中斷點」(紅色的 bar 所在那一行)。
2. 執行「 除錯」功能。執行方式可從下列所示圖中三種選一:
3. 此時,如下圖所示,程式開始執行之後會暫停在第 10 行,但第 10 行尚未被執行。
5. 此時的執行結果畫面應暫為如下所示: (這是因為第 9 行已執行完畢而第 10 行尚未執行)
6. 此時,我們準備要進行單步執行了。因為接下來第 10 行是要執行呼叫 aaa() 函數,故在這裡對你來說,接下來會有兩種單步除錯方式 (注意: 所謂「除錯」並不代表你的程式真的有錯誤,有時候是我們故意要進入「除錯模式」來觀看與了解程式的執行過程)
6.1 把第 10 行當作單一個敘述來執行: 此時,請按如下圖所示的「單步執行」:
之後,畫面變成了:
(以上代表剛才的第 10 行的函數呼叫已被當成一行指令快速地執行過了 )
6.2 至於另一種執行除錯的方式,請回上上圖。在上上圖中,我們這次準備在第 10 行的敘述中,直接切入 aaa() 函數裡面去觀看此函數內其每一步敘述的執行過程。操作方式為如下圖所示: 請執行「追蹤入函式」:
之後,就會進入函數 aaa() 的定義中去單步執行了,如下圖所示:
自此以後,你可以在函數 aaa() 中,繼續選擇單步執行了。
注意: 任何時間你要讓剩餘尚未執行的程式碼一次執行完畢 (也就是你不想要再一步一步、一行一行觀看時),請按「跳過函數單步執行」,如下圖所示:
但若你不想要繼續執行了 (也許是你已找到錯誤而結束程式執行以準仍來修正了),此時,你應按下如上圖的「中斷執行」,以完全立即結束執行。
若你單步執行到如下圖的畫面時,若你又繼續按了「單步執行」來執行第 11 行時,會因為 getchar() 函數正在等待你於鍵盤上輸入一個字元,而讓你感覺似乎無法繼續單步了。
此時,請切換到程式的執行畫面上,如下圖所示,然後輸入一個字元後,按 Enter 鍵 (或直接按下 Enter 鍵亦可)
联系客服