是否可以在调试会话中逐步执行已执行的代码?
例如,我跳过一个名为abc()
的方法,希望获得12
,但在重新检查返回的值后,我会注意到5
而不是12
}。我怎样才能回到原来的位置并进入方法以查看发生了什么?我知道你可以在visual studio中做到这一点,但我无法在intelliJ中找到如何做到这一点。
答案 0 :(得分:62)
您可以放下框架,直到达到想要的位置。这并没有完全退步,但它在很多方面都非常相似。
虽然正如Tiago在下面提到的那样,但这并不能恢复你的申请的全球状态 - 如果你正在开发无国籍服务,这不是一个巨大的问题,但如果你正在开发摇摆应用程序,那可能就是如此。 (如果有人真的这样做了)。
在调试器工具栏上,它看起来像这样:。在Idea 2016.3
及之后,丢帧图标看起来像
此处提供了完整的文档:IntelliJ Debugger Docs,还有一个StackOverflow Drop Frame Question,其中包含一些有用的答案
答案 1 :(得分:2)
查看Chronon Debugger插件,它实际上允许您退后一步,而不仅仅是丢帧 http://blog.jetbrains.com/idea/2014/03/try-chronon-debugger-with-intellij-idea-13-1-eap/