Backend Development 10 min read

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.

DaTaobao Tech
DaTaobao Tech
DaTaobao Tech
Advanced IntelliJ IDEA Debugger Techniques for Backend Developers

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.

BackendJavaIntelliJ IDEAbreakpointsDebuggerDebuggingTips
DaTaobao Tech
Written by

DaTaobao Tech

Official account of DaTaobao Technology

0 followers
Reader feedback

How this landed with the community

login Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.