Intellij 调试器中的“单步执行”和“强制单步执行”之间的区别是什么?

2022-09-04 20:19:17

在调试中,单步执行和强制步进有什么区别?


答案 1

根据我自己多年来使用IntelliJ调试器的观察,如果您尝试在给定的代码行上单步执行方法调用,将发生以下情况:

  • 如果被调用的代码是您自己的代码,则调试器将单步执行该方法
  • 如果被调用的代码是某个第三方库,则调试器将忽略您的请求,而是单步执行该行

通过告诉IntelliJ强制单步执行一行,在第三方方法的情况下,它将尝试查找该方法的源代码。如果它找不到源代码,那么它可能会显示一个基于字节码/库自动生成的存根。但是,可能没有显示任何代码,或者如果有,这将是IntelliJ基于字节代码的最佳猜测。


答案 2