Fundamentals 9 min read

How to Use Breakpoint Debugging in IntelliJ IDEA: Buttons, Types, and Tips

This article explains how to start breakpoint debugging in IntelliJ IDEA, walks through the many toolbar buttons and their functions, introduces various breakpoint types such as method, property, exception, and demonstrates practical code examples for stream and multithreaded debugging.

Java Architect Essentials
Java Architect Essentials
Java Architect Essentials
How to Use Breakpoint Debugging in IntelliJ IDEA: Buttons, Types, and Tips

Debugging becomes essential as projects grow, yet many developers skip learning useful debugging tricks; this guide shows how to enable breakpoint debugging in IntelliJ IDEA by clicking the small bug icon.

The debugging toolbar contains numerous buttons; each is described with its purpose and a GIF demonstration:

1. Return to breakpoint – jumps back to the last breakpoint location.

2. Step Over – executes the current line without entering called methods.

3. Step Into – enters the selected method (excluding library code).

4 & 5. Force Step Into / Step Out – forces entry into deep or framework code, or exits the current method.

6. Drop Frame – rolls back the call stack to a previous frame (only works if stack information is available).

7. Jump to Cursor – moves execution to the line where the cursor is placed.

8. Evaluate Expression – evaluates a custom expression during debugging.

9. Resume Program – continues execution until the next breakpoint (or a specified line).

10. Stop Program – stops the debugging session; the program may still run unless explicitly halted.

11. View All Breakpoints – opens a dialog to manage, enable/disable, and configure breakpoints.

12. Disable Breakpoint – temporarily disables a breakpoint, often used together with Resume Program .

13. Variables Pane – shows variable values and allows watching changes.

Beyond the basic line breakpoints, IntelliJ supports many specialized breakpoint types:

Method Breakpoint – placed on an interface method to jump directly to its implementation.

Property Breakpoint – set on a field; a small eye icon appears, and the debugger stops on getter/setter access.

Exception Breakpoint – stops when a specified exception (e.g., NullPointerException) is thrown.

Terminate Breakpoint – uses Force Return to abort method execution.

Conditional Breakpoint – adds a condition expression so the breakpoint triggers only when the condition is true.

Log/Stream Breakpoint – useful for observing data flow; the article includes a Java stream example:

List
list = new ArrayList<>(Arrays.asList(1, 3, 3, 4, 4, 4, 5, 6, 78));
List
collect = list.stream()
    // filter even numbers, remove duplicates, collect to list
    .filter(s -> s % 2 == 0)
    .distinct()
    .collect(Collectors.toList());

The stream breakpoint can be visualized with a GIF showing the debugger pausing at each pipeline stage.

Multithreaded debugging is also covered, demonstrating how to debug scheduled tasks and ensure threads pause correctly using the Resume Program button.

Remote debugging is mentioned briefly but not detailed.

The article concludes with a reminder that the content is part of a larger resource platform and encourages readers to share and join the community.

debuggingdevelopmentIDEbreakpointIntelliJ
Java Architect Essentials
Written by

Java Architect Essentials

Committed to sharing quality articles and tutorials to help Java programmers progress from junior to mid-level to senior architect. We curate high-quality learning resources, interview questions, videos, and projects from across the internet to help you systematically improve your Java architecture skills. Follow and reply '1024' to get Java programming resources. Learn together, grow together.

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.