Skip to content

v3.0.1

Compare
Choose a tag to compare
@adpi2 adpi2 released this 21 Oct 09:03
· 945 commits to main since this release

Highlights

Step filter in Scala 2 and Scala 3

The debugger now skips the methods that are generated by the compiler such as:

  • the mixin forwarders
  • the bridges
  • the accessors: getters and setters
  • the adapted methods (for-loop generators)
  • the synthetized methods of a case class or case object

This optimizes the debugging experience by only stepping in relevant places of the Scala execution.
It affects the step-in, the step-out and the breakpoints.

Example

Before: The debugger stops twice in the mixin-forwarders before jumping to user-written code.
before-step-filter

After: The debugger jumps directly to user-written code.
after-step-filter

Expression evaluator for Scala 3

The debugger can evaluate any Scala 3 expression during the execution of a Scala 3 source file.
scala3-expression-evaluator

Show returned value of a method call

The debugger shows the returned value after stepping out of a method.
return-value

Logpoints

You can add logpoints in your source file to print values at some execution steps of your program.
logpoint

Conditional breakpoints

You can add a boolean expression to a breakpoint so that it breaks in only if the condition is met.
conditional-breakpoint

Note: The breakpoint always breaks in if the expression does not return a boolean value or throws an exception.

Restart the top frame of the call stack

You can now restart the top frame of the call stack: the JVM will jump back to the beginning of the current method.
restart-top-frame

Note: This only works on the top frame. To restart a frame that is in the middle of the stack you can step out several times to return back to it and then restart it.

Skipping out of class loading

The JVM's calls to ClassLoader.loadClass are automatically skipped out. The user's breakpoints in the class loaders and the explicit calls to loadClass are never skipped out.

Contributors

Thank you to all contributors:

Merged PRs

Full Changelog: v2.1.0...v3.0.1