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.
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.
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.
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.