Debugging Technics
- There is a feature, called Stream Chain Tracing, to visualize the whole flow of a lambda stream.
- You can use Analyze Data Flow to inspect how a flow runs through your code.
- There are a set of Statics Analysis Features on IntelliJ that help a lot when understanding code.
- If you use Method Breakpoints, they are hit even by methods invoked with the reflection API.
- There are Non-Suspending Breakpoints that do not pause de execution when hit. Instead of pausing the execution, they can be used as a conditional to enable other breakpoints.
- You can stop at breakpoints per thread for debugging concurrency scenarios.
- Use custom renderers to look only at data you want on the debugger interface. E.g. exhibit only nested properties of an object; view the head and tail of a list; output JSON for objects.
- You can also use watchers to move relevant data into a more focused area in the debugging UI.
ย