修改bug的步驟:
原則:根據程序運行的順序,一步一步分析
- 檢查jsp頁面請求是否提交到controller
- 檢查controller是否接收到表單的數據
- 檢查controller接收到的數據是否傳到了Dao
- 檢查sql是否執行成功,有沒有返回正確的數據
- 檢查dao的數據是否傳到controller
- 檢查controller的數據是否傳到jsp,並正確顯示
IDEA DeBug調試技巧:
1.設置斷點
選定要設置斷點的代碼行,在行號的區域后面單擊鼠標左鍵即可。
2.開啟調試會話
點擊紅色箭頭指向的小蟲子,開始進入調試。
IDE下方出現 Debug 視圖,紅色的箭頭指向的是現在調試程序停留的代碼行,在方法 f2() 中,程序的第17行。紅色箭頭懸停的區域是程序的方法調用棧區。在這個區域中顯示了程序執行到斷點處所調用過的所有方法,越下面的方法被調用的越早。
3.單步調試
3.1 step over
點擊紅色箭頭指向的按鈕,程序向下執行一行(如果當前行有方法調用,這個方法將被執行完畢返回,然后到下一行)
3.2 step into
點擊紅色箭頭指向的按鈕,程序向下執行一行。如果該行有自定義方法,則運行進入自定義方法(不會進入官方類庫的方法)。具體步驟如下:
在自定義方法發f1()處設置斷點,執行調試
點擊
3.3 Force step into
該按鈕在調試的時候能進入任何方法。
3.4 step out
如果在調試的時候你進入了一個方法(如f2()),並覺得該方法沒有問題,你就可以使用stepout跳出該方法,返回到該方法被調用處的下一行語句。值得注意的是,該方法已執行完畢。
3.5 Drop frame
點擊該按鈕后,你將返回到當前方法的調用處(如上圖,程序會回到main()中)重新執行,並且所有上下文變量的值也回到那個時候。只要調用鏈中還有上級方法,可以跳到其中的任何一個方法。
3.6 Run to Cursor
點擊這個按鈕,程序將運行到當前光標所在位置
如上圖,當前程序停留在11行,光標在17行,點擊箭頭所指按鈕,程序會運行到第17行(不需要設置斷點):
4.高級調試
4.1 跨斷點調試
設置多個斷點,開啟調試。
想移動到下一個斷點,點擊如下圖:
程序將運行一個斷點到下一個斷點之間需要執行的代碼。如果后面代碼沒有斷點,再次點擊該按鈕將會執行完程序。
4.2 查看斷點
點擊箭頭指向的按鈕,可以查看你曾經設置過的斷點。
箭頭指向的是你曾經設置過的斷點,結束調試后,應該在箭頭1處把所設的斷點刪除(選擇要刪除的斷點后,點擊上方的紅色減號)。
4.3 設置變量值
調試開始后,在紅箭頭指向的區域可以給指定的變量賦值(鼠標左鍵選擇變量,右鍵彈出菜單選擇setValue...)。這個功能可以更加快速的檢測你的條件語句和循環語句。