老子有钱
  咨询电话:15257361073

lzyqAPP

如何在eclipse中快速debug到想要的参数条件场景下

前言

俗话说,工欲善其事必先利其器。

对于我们经常使用的开发工具多一些了解,这也是对我们自己工作效率的一种提升。

场景

作为开发,我们经常会遇到各种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 ,这样才同时满足。