Intelij Idea设置条件断点

版权声明:未经博主同意,谢绝转载!(请尊重原创,感谢。) https://blog.csdn.net/topdeveloperr/article/details/89354462

使用断点进行调试是每一个开发者必不可少的一项技能,在调试程序的时候,我们常常会在我们想要分析问题的代码行加上断点,让程序执行到此行时被暂停,便于我们分析问题。一般情况下,基本的断点功能足以满足我们的需求,但是有的情况或者调试的条件更苛刻的时候,只使用基本的断点功能就会显得不太够用。举例说明,现在在程序里有下面这样一行代码:

String str = generateAString();

该行代码定义了一个字符串变量str,它的值由一个叫generateAString的方法返回。假设这个方法可能返回的string有1000种,这个时候我们如果要在这行代码加断点,则任意的1000种字符的情况都会进入这个断点。这也是最通常使用的情况。

然而现在因为一个特殊的需求,我只想分析当str的值为1000种可能的值里的某一个时的程序情况。这个时候如果我们不做任何改动,则我们必须每次都停在这行代码,不停的执行并检测str的值是否是我们期望的值,这无疑是非常效率低下且不方便的。

这就是condition breakpoint,条件断点的使用场景。在Intelij idea里面,我们可以通过快捷键组合:ctrl+shift+F8,打开断点管理的页面,打开之后如下:

上图中左边的list就是我们为当前应用程序加入的所有断点,右边是选中的某一个断点的信息。在这些信息中有一个叫做condition的选项就是我们需要的。勾选上condition选项之后,我们可以在其后的框里写入我们的的条件,其语法和java语法一样,可以将这行代码看作断点出之前的一行代码,在我们写入这个condition之后,它的效果如下代码所示:

if(condition){
    String str = generateAString();
}

例如,按照我们上面的需求,我们就可以定义如下的condition:

这样,就只有当该条件满足:即str的值为xxx时,程序在调试时才会进入我们的断点。

不同的编辑器可能会有不同的定义方法,但其背后实现道理差不多,以上就是对这个实用小功能的记录。

猜你喜欢

转载自blog.csdn.net/topdeveloperr/article/details/89354462
今日推荐