How to step one step back in IntelliJ?

Is it possible to step backwards through executed code in a debug session?

For example I step over a method called abc() expecting to get 12 but after re-checking the value returned I notice it's 5 instead of 12. How can I step back to where I was before and step into the method to see what is going on? I know you can do this in visual studio but I can't find how to do this in intelliJ.

52981 次浏览

You can drop the frames until you reach the point where you want to be. This isn't exactly stepping backwards, but it is quite similar in a lot of respects.

Though as the comments mention below, this will not revert the global state of your application -- which isn't a huge concern if you're developing stateless services, but could be if you're developing swing applications (if anyone actually does that any more).

On the debugger toolbar it looks like this: Drop Frame. In Idea 2016.3 the drop-frame icon changed to look like this drop frame in idea 2016.3, and since 2019.3 it changed to look like this enter image description here.

Full documentation is available here: IntelliJ Debugger Docs, and there is a StackOverflow Drop Frame Question, with a few useful answers

Check out Chronon Debugger plugin which actually allows you to step back, not just drop the frame http://blog.jetbrains.com/idea/2014/03/try-chronon-debugger-with-intellij-idea-13-1-eap/