如何在Intellij想法调试中跳过行?

假设我有这样的java代码(仅作为示例):

public void someMethod(){ int a = 3; int b = 2; // <-- stay debug here a = b + 2; System.out.prinln(a); } 

可以跳过“int a = b + 2”行的执行。 并且不动地去“System.out.prinln(a);”?

PS我使用Intellij Idea 12。

调试器无法执行部分代码。

但是,可以执行额外的代码并更改变量的值,因此如果您需要在调试期间从执行中排除一行,则必须更改代码以准备进行此类调试。

 public void someMethod() { int a = 3; int b = 2; boolean shouldRun = true; if (shouldRun) { a = b + 2; } System.out.prinln(a); } 

然后,您将设置一个断点,在不停止执行的情况下更改shouldRun的值。 它可以这样做。

在此处输入图像描述

注意

  1. 未选中暂停
  2. 记录计算表达式用于在命中断点时更改变量

只有在使用hotswapping或换句话说代码重新加载工具时才可以跳过行 – 在运行时添加代码更改/新代码。 Hotswapping是在不关闭系统的情况下更换组件的function。 Hotswapping还可以指代改变程序运行代码而无需中断其执行的能力。

有各种hotswapping工具,如:JRebel( https://zeroturnaround.com/software/jrebel/ )或HotSwapAgent( http://www.hotswapagent.org/

您可以避免重建整个应用程序以重新加载代码更改,这可以节省大量时间。 不要运行完整的构建过程,只需使用IDE中内置的编译器,hotSwap代理/工具就会将代码重新加载到JVM中。

在这种情况下,它实际上不会跳过,但您可以只是注释/更改行并重新加载它。 这个工具非常棒!!!! 它大大加快了开发/调试过程

调试时,您不能只跳过“行执行”。 您可以按F8跳过。

无法跳过IntelliJ中的行的执行,甚至在Eclipse中也是如此。 你唯一能做的就是你可以跨步(F8) – 它会逐行追踪而不进入任何function。

还有一件事是Step out(Shift + F8) – 它将通过在该步骤中的行之间执行来直接进入下一个调试点。