IntelliJ IDEA 2016.2 Help

Tutorial: Debugging Your First Java Application

On this page:

Before you start...

You have already created and executed your first Java application. Now it's time to debug it.

However, it would be nice to add one more line to the application - let it be

System.out.println("it's me, Wombat!");

Putting breakpoints

To start a debugger session, first of all you need to place a breakpoint at the statement where you want to suspend the execution of your application. The existing source code does not give you much of a choice - the only place, where you can put breakpoints, are the statements

System.out.println("Hello World!"); System.out.println("it's me, Wombat!");

So let's do it. Click the left gutter at the line of the statement you want to put a breakpoint on, or just press Ctrl+F8:


As you see, the new breakpoint is added to the source code. The line where the breakpoint is set changes its color to pink.

If you just hover your mouse pointer over the breakpoint, you will see its properties in the tooltip:


Suppose you want to change some properties of this breakpoint. Then right-click it and see the following dialog box:


Finally, you would like to explore and change all the available properties of a breakpoint and see its location among the other breakpoints (if any). In this case, press Ctrl+Shift+F8:


Starting a debugger session

Now that the breakpoints are added, you can debug your application. This can be done in numerous ways; however, let's follow the easiest one.

Mind the icon left_gutter_run that marks a class with the main() method. Clicking this icon reveals a menu that enables running and debugging such a class:


What does it mean?

IntelliJ IDEA launched the debugger session with the temporary run/debug configuration. This run/debug configuration has the default name "HelloWorld.main()'. To view and change the settings of this run/debug configuration, choose Run | Edit Configurations... on the main menu:


or click the run/debug configuration selector, and then choose Edit Configurations...:


IntelliJ IDEA compiles your application (which takes time!), and then suspends the application at the first breakpoint.

The IntelliJ IDEA window now looks different:

  • The first thing that has changed is the color of the first line with the breakpoint. Now this line is rendered blue:

    It means that (according to the breakpoint properties) the application has reached this breakpoint, hit it and suspended before the statement println.

  • Next, in the lower part of the IntelliJ IDEA window, a special tool window has emerged. This is the Debug tool window that features the stepping toolbar and shows all the necessary information you might need during the debugger session:

Stepping through the application

Stepping through the statements directly

Let's step through the application. Click frames_step_over on the stepping toolbar, or just press F8.

The next line now becomes blue. If you look at the Debug tool window, you notice the following changes:

  • In the Frames pane, the next line number is shown.
  • The Console tab is marked with the icon console_info_icon, which means that it contains new output.

Click the Console tab. You see the message of the first line with the breakpoint "Hello, World!". The second message is not yet visible:


Click frames_step_over again on the stepping toolbar, or press F8. Now the second message appears in the console. After you click frames_step_over the next time, the application stops:


This debugging session is over.

Stepping through the method calls

Now let's explore a more complicated way and step into the println() call.

First, restart the debugger session. To do that, just click debug on the toolbar of the Debug tool window. Thus you'll rerun the latest run/debug configuration, namely, HelloWorld.

The application again pauses at the first breakpoint. This time, click frames_force_step_into, or press Shift+Alt+F7. You see a different picture:


It means that IntelliJ IDEA has stepped into the method println(String x) of the library class Note that a new thread appears in the list of threads.

Click frames_step_out or press Shift+F8 to return to the next breakpoint:


Note that the Console tab has again got the marker console_info_icon, which means that new output is available. Next, click frames_step_over. You see that the process terminates:


See Also

Last modified: 5 September 2016