[最近回覆一些網友問題時發現有些新手竟然沒有使用過中斷點,之前寫程式都是看跑出來對不對再決定要怎麼改,在大為震驚之餘也決定寫個簡單的教學讓新手可以看看,因為我看了一下MSDN上的中斷點說明,真的講的太複雜了,下面簡單描述一下。
最近回覆一些網友問題時發現有些新手竟然沒有使用過中斷點,之前寫程式都是看跑出來對不對再決定要怎麼改,在大為震驚之餘也決定寫個簡單的教學讓新手可以看看,因為我看了一下MSDN上的中斷點說明,真的講的太複雜了,下面簡單描述一下。
何謂中斷點(break-point),顧名思義就是中斷程式的位置,當我們在撰寫一段很複雜的程式時,我希望能檢查看看我程式是否寫的正確,在過程中傳遞的參數是否沒問題,在過去沒有中斷點可以使用時,我們很習慣透握Log的方式去把每個參數內容寫出來,雖不方便,但起碼還可以解決我們的問題,但如果遇到不是文字型態的物件參數,該怎麼寫到Log檔呢?這問題就大囉,中斷點這個東西,是在程式運行過程中,中斷執行緒並取得目前記憶體中的物件內容,讓程式設計師可以在VS的畫面中看到目前物件的實際結果。
講完概念,還是來看看實際的狀況吧,先看一下VS:
一般我們看到這樣不大不小的程式,如果我們想知道我進行treeview1的NodeMouseDoubleClick事件時是否有依我希望的步驟進行,我們可以有兩個做法:
1.移動到我們希望中斷的行號,按下F9
2.在我們希望中斷的行號前的空白區域按一下滑鼠左鍵(下圖紅色圈圈處)
這時候我們就會看到我們選擇的那一行被以紅色標示:
當我們進行偵錯,我們會發現,當我們執行到中斷點的程式行號時,程式會被[中斷](以此case為例,我的Form就不能操作了),
這時候我可以針對我想知道的物件內容,點選右鍵-->加入監看式
我就能在下方看到這些物件的值,
並可以直接在監看式上透過intellisense來看物件的屬性或者修改他的值:
如果我想要一行一行看看程式是否有問題,你可以按F10,逐行進行偵錯,如果我想要繼續執行程式,我可以按下F5,讓程式直接執行到下一個中斷點,如果後面已經沒有中斷點,則程式就會執行完畢,直到你操作到下一個中斷點的程式為止,如果你想要取消中斷點,有三個方法:
1.移動到我們希望中斷的行號,按下F9
2.在我們希望中斷的行號前的空白區域再按一下滑鼠左鍵(下圖紅色圈圈處)
特別的應用:
Tip1:如果我想要偵錯function中的function,您除了在那個function中下中斷點外,您還可以在執行到該行時按下F11直接進入該function,
Tip2:如果我想在特殊條件時才進入中斷點,你可以在中斷點上點右鍵,選擇條件,
例如tRelateToMe.Rows.Count >0時才中斷,則當滿足此條件時才會進行程式的中斷,適合用在以下幾個狀況:
1.迴圈數較多,只想等待第500項才中斷
2.較複雜的程式運用上,某物件的值不固定,但只想監控物件為特定值時
Tip3:如果中斷點數量太多,希望先全部停掉可選擇工具列-->偵錯-->刪除所有中斷點或者停用所有中斷點,讓程式可以繼續執行不被中斷。
游舒帆 (gipi) 探索原力Co-founder,曾任TutorABC協理與鼎新電腦總監,並曾獲選兩屆微軟最有價值專家 ( MVP ),離開職場後創辦探索原力,致力於協助青少年培養面對未來的能力。認為教育與組織育才其實息息相關,都是在為未來儲備能量,2018年起成立為期一年的專題課程《職涯躍升的關鍵24堂課》,為培養台灣未來的領袖而努力。 |