熱門文章

2011年8月2日 星期二

Visual Studio 中好用的除錯技巧與快捷鍵

Visual Studio 的除錯技巧,想必用Windows開發工具寫程式的同好們再熟悉不過了...

不過今天在網路上瀏覽到一篇文章寫的還蠻詳細的

在此分享一下


除錯的輔助功能

我們都知道按下 F5 可以啟動或繼續除錯的動作, 但你或許不知道按下 Shift-F5 (Stop Debugging) 可以停止除錯, 並且立即回到設計畫面。此外, 按下 Ctrl-Shift-F5 (Restart) 可以重新啟動除錯, 這在我們修改程式碼之後的繼續除錯很有幫助。
在設定程式的中斷點之後, 我們可以按下 F10 或 F11 以逐步執行的方式來觀察每一行程式的執行結果。其中 F10 和 F11 都是讓你一行一行的往下執行, 其差異在於按下 F10 時, 畫面並不會切換到中斷行所呼叫的函式。例如你的程式中有一個方法叫做 protected int calc(int a, int b), 如果中斷點執行到這個方法時, 例如 int result = calc(100, 200); 此時如果按下 F10 (Step Over), 畫面只會繼續進行到該行的下一行 (這時候你可以把滑鼠游標移到 result 這個變數上面, 就可以看到 calc() 方法所傳回的結果); 但是如果剛才你按的是 F11 (Step Into) 而不是 F10, 那麼畫面會跳進 calc() 方法裡面, 那麼會變成你是在檢查 calc() 方法中的程式了。
在這個情況下, 如果你剛才按的是 F11, 畫面切入 calc() 方法, 而偏偏 calc() 方法又臭又長, 但你卻已經不想在 calc() 方法中浪費時間了, 怎麼辦? 很簡單, 你可以立刻按下 Shift-F11 (Step Out), 它會讓你直接從目前的函式中跳回上一層, 然後再繼續。
我個人覺得上面所提的三個按鍵幾乎已經是我日常工作中對於除錯功能的全部需求了。不過我的一位同事很喜歡使用 Watch 功能; 如果你有需要同時監看多個變數, 或許你也可以參考他的習慣做法。方法很簡單, 你可以在除錯階段中, 在變數上面按下滑鼠右鍵, 再選擇 Add Watch, 之後這個變數就會在監看視窗中列出來, 供你在逐步除錯時快速監看各個變數的變化值。不過這個功能有個缺點, 就是你時常需要以手動方式把 Watch 刪除, 否則監看視窗很快就會擠滿一大堆東西。
此外, 我個人蠻喜歡逐步執行和「繼續」混合運用的除錯方式。由於你可以很自由的在除錯時期加入和取消中斷點, 所以你可以視情況在適當的地方加入新的中斷點, 然後按下 F5 (Continue), 讓程式直接執行到新中斷點所在。你也可以在程式迴圈裡的適當地點加入中斷點, 然後按下 F5, 那麼程式會立即執行到迴圈的下一個回合。等你檢查得差不多的時候, 把迴圈內的中斷點取消, 再設定其它的中斷點, 再按下 F5, 程式又會執行到其它地方 (當然, 你也可以按下滑鼠右鍵, 再選擇「執行到游標處」; 看哪一種適合你的情況)。