close

常常有人寫完程式後,雖然可以執行,

但是執行結果不對,看來看去又不知道哪兒錯了。

這時除了用肉眼trace,debugger也是個好幫手。

它可以幫助你一步一步的執行程式,

並且顯示變數的值,讓你判斷到底是哪裡出錯了。


這是一篇簡單的心得,其實我會的也只有這樣。

拋磚引玉,希望有高手能夠再補充。

 

使用Microsoft Visual C++ 2008 Express。

(微軟IDE這方面都差不多,不同版本也可以用)

程式碼取自PTT #19KVjS0e (C_and_CPP),

由Anthony53板友提出的問題。(已徵得原作者同意)


第一步,從這個有點熟又不太熟的畫面開始。

1.jpg

 

第二步:按F10,開始「單步執行」

就會看到 main 左邊出現一個黃色的小箭頭,如下圖

該箭頭指的就是「目前程式執行到這裡」

2.jpg  
你會發現,下面多了一些奇怪的視窗,

諸如「自動變數」、「區域變數」等等,各有其妙用。


第三步:繼續按F10單步執行。

當遇到scanf或cin之類的東西時,便會跳出CMD視窗供你輸入。
3.jpg  
下面視窗會即時顯示變數的內容。

如果沒看到這些視窗,可以從這裡叫出來:
4.jpg
這裡有很多不同的視窗可以幫助debug,請多多利用。


第四步:遇到函式,如果按F10的話……

5.jpg
不會跳入函式,而會直接出現函式的執行結果。


第五步:發現這個結果並不如預期,可以先停止再重新執行。

其實也有「重新開始」的按鈕可以按,請自行研究 XDDD

(我絕對不會承認我懶得重抓圖…)


6.jpg


第六步:單步執行到剛剛的函式,按F11

7.jpg


第七步:就會發現跳進函式了,繼續單步執行。

這樣就可以去一步步看看,函式裡到底哪裡寫錯了。

8.jpg


【補充】如果想要指定看某個變數的值,請用「監看式」視窗

9.jpg

還有一個非常重要的東西要介紹:「中斷點」。

有的時候程式很大,一步一步跑實在很煩,

特別是一步一步跑迴圈的話,那會按F10按到抽筋……

因此可以在程式裡插入中斷點:

10.jpg
設定好中斷點,再按F5,

程式就會執行到中斷點的地方,然後停下來。

這樣就不用一步一步慢慢按,而能一次跳一段。

程式裡面可以設定很多個中斷點,用F5跳到下一個。

 

這就是我會的debug技巧,很簡單,但很重要。

只要善用中斷點與F5、F10、F11三個按鍵,

再加上幾個監看視窗,一步一步慢慢看,

便能知道程式哪裡錯了,請多嘗試就會熟練囉。

 

大部份的軟體都有這種功能,非微軟獨有。

因此如果你用的不是VC++,也可以研究手邊的軟體。

arrow
arrow
    全站熱搜

    james803 發表在 痞客邦 留言(0) 人氣()