1. 程式人生 > >Eclipse中的Debug

Eclipse中的Debug

get 指定 bsp targe -1 結束 視圖 底層 none

一、Debug的基本過程

  1. 設置斷點(雙擊待設斷點左邊行號處)
  2. 進入Debug模式(在待調試類上右鍵>調試方式,根據需求選擇)
  3. 開始調試

二、Debug中的常用操作

  1. 繼續執行【F8】:繼續運行程序,直到下一個斷點時掛起。
  2. 單步跳入【F5】:執行下一行有效代碼,檢測到調用方法時,進入被調用的方法。
        • (有效代碼:本次運行中要執行的代碼。比如if判斷條件為false時,if{}內即為無效代碼)
  3. 單步跳過【F6】:執行下一行有效代碼。
  4. 單步返回【F7】:執行完當前方法(直到斷點處),返回到調用處(如果有)。(無調用者時,F7無效)
  5. 單步執行過濾器:激活後,在單步執行(F5/F6/F7)時,遇到被過濾的部分,將不會停下,繼續執行。一般將JDK或者其他庫中的底層代碼過濾掉,也可以過濾自己的代碼庫中的框架部分代碼。(設置:窗口>首選項>Java>調試>單步執行過濾)
  6. 暫掛/恢復:暫時掛起一個線程。一般用於多線程程序的調試。
  7. 拖放至幀:回到當前方法的開始處重新執行,之前執行過程中變量的變化全部重置為開始時的狀態,但在程序外產生的作用不可逆(比如數據庫操作、文件操作等)。可以配合修改代碼、改變變量值等,反復調試關註的某一段代碼。【其實不止是當前方法,還可以通過點擊當前調用棧中的任意一個幀(起始幀除外),跳到那裏】
  8. 終止:強行關閉所有線程,結束本次調試。

三、斷點簡述

1.斷點類型

  1. 行斷點:執行到該行時暫掛。最普通的斷點形式,在行號處雙擊添加。
  2. 方法斷點:進入/退出方法時暫掛。將斷點打在方法的入口處。特點:可以將斷點打在JDK源碼中(行斷點不行),從而查看方法的調用棧。
  3. 異常斷點:發生異常時暫掛。運行>添加Java異常斷點,或點擊技術分享添加異常斷點。可用占位符*和?,分別表示任意字符串和任意字符。
  4. 類加載斷點:加載指定類時暫掛。 運行>添加類裝入斷點,來添加類加載斷點。在調試類加載(靜態方法、靜態代碼塊等)時使用。
  5. 變量觀察點:指定成員變量發生指定變化時暫掛。在聲明成員變量處的行號雙擊添加。可以選擇在該變量訪問、修改或達成指定條件時掛起。

2.斷點屬性

在斷點上右鍵>斷點屬性來設置。上述斷點均可設置這些屬性,來改變暫掛的方式。

  1. Hit Count:執行次數。設置後,在程序第X次執行到此斷點時暫掛。用於循環中的調試。
  2. Trigger Point:觸發點。設置後,只有在該斷點被觸發後,其他斷點才生效。
  3. 暫掛方式:掛起線程/掛起VM。前者一般用於多線程時暫掛該線程(單線程也可使用,與掛起VM效果相同)。
  4. Conditional:條件斷點。設置後,僅當滿足指定條件時暫掛。可選兩種:條件為真/變量值改變。選擇“條件為真”時,應在條件欄中填寫條件表達式;選擇“變量值改變”時,應在條件欄中填寫變量表達式。

四、其他技巧

1.在main方法的第一行停止:運行>調試配置,選擇“在main中停止”。設置後,程序運行到main函數的第一行時暫掛。

2.表達式:可以對自己的感興趣的一些變量進行觀察,也可以增加一些自己的表達式,也可以查看一行代碼的運行結果。窗口>顯示視圖>表達式,打開表達式視圖,然後可以添加表達式、觀察動態。要對表達式求值時,選中一行,在要求值的地方右鍵>檢查。

參考:Eclipse 調試器:零距離接觸實戰技巧

Eclipse中的Debug