乐趣区

关于idea:idea高级调试技巧

背景

高级调试技巧,其实就是用的比拟少。

然而,如果须要应用的时候,还是很不便的。

返回“上一步”

什么时候须要返回上一步?咱们调试的时候,就是刚刚执行了某个办法的代码,当初曾经进入到了子办法,而后又想要回去看一下变量的值,即回到父办法。

怎么做?点击返回上一步按钮即可。

步骤如下

  1. 先进入到子办法

  1. 点击返回父办法按钮

即点击 drop frame 按钮,就能够返回到父办法(在这里是 main 办法)。

回到了父办法的子办法调用处。

而后,咱们就可以看父办法的变量了。留神,这里返回父办法,看起来如同和执行实现了子办法返回父办法是一样的,然而其实不是,如果真的是子办法执行实现,出了子办法之后,回到的是父办法调用子办法的下一行代码,而不是子办法调用处,因为子办法曾经执行实现了,不能再次执行了。实际上,返回到父办法之后,而后又能够再次持续单步执行到子办法里。

总结,这里的返回上一步,有引号,因为精确的作用是返回父办法的子办法调用处。

for 循环,设置条件变量的值

什么时候须要设置 for 循环变量的值?就是当 for 循环次数十分多的时候,咱们只须要看某个值条件下的内容,这个时候如果手动设置一下变量的值就会很不便,防止一直循环断点调试。

步骤

  1. 第一次,循环变量值是 0

  1. 当初,咱们须要间接跳到循环变量值等于 50 的状况

右键红色断点,而后输出循环变量的值。

而后,继续执行下一次循环,就能够看到循环变量的值当初是 50。

能够看到,控制台打印的,第一次是 0,第二次是 50。

多线程

如果是多线程程序,咱们调试的时候,以后执行到哪个线程,齐全是随机的——这样的话,就不不便调试,因为咱们很可能只想调试某个线程的代码。

怎么做?简略一点的办法是,能够间接在想要调试的线程打断点,而后间接执行到该断点。

另外一种办法是,步骤如下:

  1. 批改线程挂起模式

能够把每个线程的断点,都切换到单个线程模式。

  1. 执行程序,能够看到所有线程

  1. 如果想要执行线程 2,就能够抉择线程 2,间接调试线程 2 的代码

抉择执行到线程 2 了。

应用这种办法的益处是,如果咱们想调试多个子线程,并且按咱们本人想要的程序来调试,那么就能够用这种办法,因为咱们间接抉择哪个子线程,就会执行到哪个子线程,而不是乱序的。


办法 1 和办法 2 的区别和比拟

办法 1,看不到所有线程,只能看到以后子线程 1 和主线程,所以不能抉择本人想要执行的子线程 2。

办法 2,能够挂起所有单个子线程,而后抉择本人须要执行的子线程即可,这样就能够齐全依照本人须要的程序去调试多线程程序。

计算表达式

步骤

  1. 点击计算表达式按钮

  1. 输出以后变量的计算表达式,获取计算结果

批改变量的值

步骤

1、一开始变量的值是 1

2、批改变量的值
右键变量——》set value

批改实现之后是 10

打印的也是 10

参考

https://blog.csdn.net/QinTao9…

最好的 IDEA debug 长文?看完我佛了
https://mp.weixin.qq.com/s/uO…

退出移动版