常常有人寫完程式後,雖然可以執行,
但是執行結果不對,看來看去又不知道哪兒錯了。
這時除了用肉眼trace,debugger也是個好幫手。
它可以幫助你一步一步的執行程式,
並且顯示變數的值,讓你判斷到底是哪裡出錯了。
這是一篇簡單的心得,其實我會的也只有這樣。
拋磚引玉,希望有高手能夠再補充。
使用Microsoft Visual C++ 2008 Express。
(微軟IDE這方面都差不多,不同版本也可以用)
程式碼取自PTT #19KVjS0e (C_and_CPP),
由Anthony53板友提出的問題。(已徵得原作者同意)
第一步,從這個有點熟又不太熟的畫面開始。
第二步:按F10,開始「單步執行」
就會看到 main 左邊出現一個黃色的小箭頭,如下圖
該箭頭指的就是「目前程式執行到這裡」
你會發現,下面多了一些奇怪的視窗,
諸如「自動變數」、「區域變數」等等,各有其妙用。
第三步:繼續按F10單步執行。
當遇到scanf或cin之類的東西時,便會跳出CMD視窗供你輸入。
下面視窗會即時顯示變數的內容。
如果沒看到這些視窗,可以從這裡叫出來:
這裡有很多不同的視窗可以幫助debug,請多多利用。
第四步:遇到函式,如果按F10的話……
不會跳入函式,而會直接出現函式的執行結果。
第五步:發現這個結果並不如預期,可以先停止再重新執行。
其實也有「重新開始」的按鈕可以按,請自行研究 XDDD
(我絕對不會承認我懶得重抓圖…)
第六步:單步執行到剛剛的函式,按F11
第七步:就會發現跳進函式了,繼續單步執行。
這樣就可以去一步步看看,函式裡到底哪裡寫錯了。
【補充】如果想要指定看某個變數的值,請用「監看式」視窗
還有一個非常重要的東西要介紹:「中斷點」。
有的時候程式很大,一步一步跑實在很煩,
特別是一步一步跑迴圈的話,那會按F10按到抽筋……
因此可以在程式裡插入中斷點:
設定好中斷點,再按F5,
程式就會執行到中斷點的地方,然後停下來。
這樣就不用一步一步慢慢按,而能一次跳一段。
程式裡面可以設定很多個中斷點,用F5跳到下一個。
這就是我會的debug技巧,很簡單,但很重要。
只要善用中斷點與F5、F10、F11三個按鍵,
再加上幾個監看視窗,一步一步慢慢看,
便能知道程式哪裡錯了,請多嘗試就會熟練囉。
大部份的軟體都有這種功能,非微軟獨有。
因此如果你用的不是VC++,也可以研究手邊的軟體。
留言列表