前言
俗話說,工欲善其事必先利其器。
對於我們經常使用的開發工具多一些了解,這也是對我們自己工作效率的一種提升。
場景
作為開發,我們經常會遇到各種bug,大部分的bug很明確,我們直接可以打斷點定位到。
但是有的情況下,我們的斷點可能在某個循環中~而且這種循環量有點大,如果手動F8一直等到自己想要的參數出現,然后再詳細查看每個參數的值,這個未免有些麻煩。
這個時候呢~brakpoint properities就派上用處了
用法
1 public static void main(String[] args) 2 { 3 for(int i=0;i<10000;i++) 4 { 5 count++; 6 //do~something~ 假設這里還有很多參數,以及一些業務的處理 7 } 8 System.out.println(Thread.currentThread().getName() + "最終count>>>"+count); 9 }
首先在我們確認需要打斷點的地方,手動打上斷點,如上代碼,很簡單的一個方法,我們在第5行打上斷點,我們想查看循環到第100次的時候參數值的情況,這個怎么辦?肯定不能手動F8一百次吧!
第一種,切換eclipse到debug模式,然后找到當前斷點,右鍵,選擇“brakpoint properities” 菜單,勾選hit count 設置數值為100 這樣當這行代碼被執行第一百次的時候,會停下來,然后我們就可以慢慢查看具體的各個參數情況了。如下圖所示:

第二種,設置條件表達式,我們要找到count 等於100 的情況,這個時候我們勾選conditional 選項 然后在下放的文本域中 輸入條件 “count == 100 ” 和java代碼寫法一樣,只要表達式返回的是boolean值就可以。另外,假如我們的參數條件可能不止count一個
我們可以直接在 count == 100 后面拼接其他的參數條件,比如 “ count == 100 || count == 500 && xxxargs > 0 ”這種形式也是可以的。

第三種,同時勾選hit count 和 conditional ,這個時候要特別注意,雖然是多選框~但是 2個的條件是 與 的關系,不是 或 的關系。 也就是在滿足 第一個hit count數同時滿足第二個條件才會停下來。
按照我們的前面的代碼,如果將hit count設置為100,同時將conditional 設置為 count == 100 這個時候是不會有任何停留,因為當前者滿足的時候,后者才等於99。這個時候我們需要將count數設置為101 或者將
表達式改為 count == 99 ,這樣才同時滿足。
