Advanced IntelliJ IDEA Debugger Techniques for Backend Developers
The article showcases several advanced IntelliJ IDEA debugger features—non‑suspend, exception, and dependent breakpoints, breakpoint restoration, custom object and list renderers, object marking, and reference/async stack trace tools—that enable backend developers to diagnose and resolve issues far more quickly and precisely than with basic debugging operations alone.
In the AIGC era, code generation is easy, but debugging and problem‑solving become the decisive skills for developers. This article introduces several lesser‑known but powerful features of IntelliJ IDEA’s Debugger that can significantly improve debugging efficiency for backend development.
Note: Basic debugger operations (Step Over, Step Into, breakpoints, etc.) are not covered.
Non‑Suspend Breakpoints
By unchecking Suspend and filling in Evaluate and log , a breakpoint becomes yellow and logs information without pausing execution.
Exception Breakpoints
Configure an exception breakpoint to stop execution exactly where an exception is thrown, rather than where it is caught. This helps locate the real source of the error.
Dependent Breakpoints
Use a pre‑condition breakpoint in realWork() and enable a dependent breakpoint in work() only after the first one hits.
Breakpoint Restore (Undo)
IDEA provides three ways to recover deleted breakpoints: standard undo, “Restore previous breakpoint” after multiple deletions, and changing the left‑click action to disable rather than delete breakpoints.
Custom Object Renderers
For objects like a subclass of JSONObject , replace the default Map renderer with a toString renderer or create a Class‑Level Watch to display specific fields.
import org.jetbrains.annotations.Debug.Renderer;@Renderer(text="name",childrenArray="courses.toArray()",hasChildren="courses.isEmpty()")public class Student {private String name;private ArrayList courses;Student(String name,ArrayList courses){this.name=name;this.courses=courses;}}
List Renderer
Disable “Show null values” to see null entries in collections, preventing NPEs caused by hidden nulls.
Object Marking
Mark an object during debugging to track it across threads and contexts. Marked objects appear highlighted in all debug views and can be referenced via the label.
References and Async Stack Traces
Use “Show Referring Objects” to find all threads holding a reference. Async stack traces can be toggled to hide or show the parent thread’s stack.
These techniques help backend developers leverage IDEA’s debugger to diagnose issues faster and more precisely.
DaTaobao Tech
Official account of DaTaobao Technology
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.