Using "Run to cursor" is my favorite less known feature in debugging, it's really useful.
Using "Run to cursor" is my favorite less known feature in debugging, it's really useful.
For example, if an exception is being logged in some random location (but poorly) I can throw a breakpoint on the log message, pop up several stack frames, look at the inputs into those frames (what are all the local variables) and replay down to whatever level I want or what other breakpoint I want to hit.
The only catch is if your functions are mutating input data (or some shared state somewhere), then you could be looking at different executions from one stack to the next.
One more reason to prefer pure functions over side-effects.
I have lost hope for DCEVM being upstreamed to allow structural changes to the class :-(
Also with 'Java on Truffle' on GraalVM you can use enhanced class reloading https://www.graalvm.org/latest/reference-manual/java-on-truf...
I think hot code reloading did not look that good in a very long time.
And I'll be straight: Graal scares me 'cause Oracle but I just checked and it looks to the casual observer that it's straight-up GPLv2 now so maybe my fears need revisiting: https://github.com/oracle/graal/blob/vm-23.1.0/LICENSE