最近在寫簡訊系統時,在Google找到了一些在 Visual Studio 內實用的DeBug小技巧,DeBug對於程式開發是很重要的一環,往往需要花費大量的時間去測試、找問題,拜現在好用的開發工具Visual Studio 2017給了許多DeBug的好方法讓我們使用,讓我們節省大量的時間在DeBug,將更多的時間花在開發上,而現在就來一一的介紹。
- 點擊設置下一個執行點
許多人可能知道你可以在左側按住箭頭並上下拖動移動它。但你可能不知道的是,從Visual Studio 2017 15,3 preview版本後開始,有一種更簡單的方法來設置下一個執行點。
- 將鼠標停在要移動箭頭的代碼行上。
- 並按下前方箭頭鍵就會繼續執行你所選到的該行程式上。
圖 1 點擊設置下一個執行點
- 指定值中斷
你是否在DeBug時遇到過一種情況,在一個中斷點處需要檢查變數的值或屬性,以及到達下一個中斷點時屬性是否已更改。你可以在class的setter上設置中斷點,但這會變的在class的每個實作中中斷!如果你只想知道一個有問題的點該怎麼辦?
- 在中斷點上按右鍵→條件
圖 2 條件
- 設定指定的條件
圖 3 設定指定的條件
- 重新附加到處理序
Visual Stuido 2017中新增的一個功能,許多人還沒有發現。當你正在處理需要使用“附加到處理序”的項目時,它非常有用。
- 點選上方工具欄偵錯→附加到處理序(Ctrl + Alt + P),選擇要附加的處理序,然後按下“附加”。
圖 4 附加至處理序
- 停止偵錯後要再繼續附加,請轉到工具欄上偵錯→重新附加至處理序(Shift + Alt + P)。
- 顯示執行緒
要DeBug多執行緒的程式是比較困難的,但是當妳可以在編輯器中看到當前每個執行序的執行行數時,它會變得對容易些。
- 在Debugger工具欄中選擇”在原始程式檔中顯示執行序”。
- 符號就會出現在每行程式碼左側的中斷點設定區域,其中至少會有一個執行序是正在被停止的。
- 將滑鼠鼠標停留在執行序符號上可以查看當前在該行程式碼上停止的所有執行序的執行緒ID與名稱 。
- 右鍵點及該執行序可以查看可以執行的操作,例如凍結或切換當前執行的執行序等等
圖 5顯示執行緒
- 使用無副作用的評估表達式“,nse”
你是否曾經需要使用監看式、即時運算視窗時,然後必須處理改變後的副作用,通常這可能在試著使用表達式時發生,並且會導致副作用,這時你可以使用,nse,讓你執行沒有副作用的表達式。
- 你可以在監看式、即時運算視窗輸入任何表達式後添加,nse(代表無副作用)
- 將使得表達式沒有任何副作用
圖 6 使用無副作用的評估表達式“,nse”
除了上面的方法以外還有一些其他好用的技巧留著下次再做介紹,但DeBug除了好用的工具外,方法也是很重要的,DeBug修改前最好是透過版本管理工具,或是自己備份程式的檔案;永遠記得DeBug修改一個地方就好,一次修改兩個地方出了問題又要檢查兩次,永遠把問題範圍縮小;修改錯誤後也要注意會不會有其他問題出現或是有類似的錯誤發生在其他地方;仔細好好想想該如何達成,才可以把錯誤降到最低,讓使用者的體驗是最好的。