如何在IntelliJ中退一步?

Cri*_*utu 59 java debugging intellij-idea

是否可以在调试会话中向后执行已执行的代码?

例如,我跳过一个名为abc()expecting get 的方法,12但在重新检查返回的值后,我注意到它5而不是12.我怎样才能回到原来的位置并进入方法以查看发生了什么?我知道你可以在visual studio中做到这一点,但我无法在intelliJ中找到如何做到这一点.

Eng*_*ery 68

您可以放下框架,直到达到想要的位置.这并不完全是倒退,但它在很多方面非常相似.

虽然正如Tiago在下面提到的那样,但这并不能恢复你的应用程序的全局状态 - 如果你正在开发无状态服务,这不是一个大问题,但如果你正在开发swing应用程序(如果有人真的那么做了) ).

在调试器工具栏上,它看起来像这样: 丢帧.在Idea 2016.3最多的图标这个样子的在想法2016.3中丢帧

这里有完整的文档:IntelliJ Debugger Docs,还有一个StackOverflow Drop Frame问题,有一些有用的答案

  • 你让我更有成效.谢谢 (13认同)
  • 看起来有前途,让我们看看它是如何工作 (4认同)
  • "它功能相同" - 这是错误的.例如,丢弃帧不会还原静态或字段变量.它只会还原局部变量.在使用此功能之前必须注意这一点. (4认同)
  • 没找到它.不再可用吗? (3认同)
  • 图标已更改,但它仍然存在.这是一个左上角有红色x的盒子. (3认同)