IntelliJ IDEA 2017.2 Help

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:

HWDebug create breakpoint

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:

HWDebug view breakpoint

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

HWDebug breakpoint properties

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:

HWDebug breakpoint properties full

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:

HWDebug start session

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:

ij runConfigMenu

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

HWDebug runconfig

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:
    HWDebug breakpoint hit

    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:
    HWDebug toolwindow

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.
HWDebug breakpoint2 hit

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

HWDebug console

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:

HWDebug console2

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:

HWDebug step into class

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:

HWDebug breakpoint3 hit

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:

HWDebug application stop
Last modified: 29 November 2017

See Also


External Links: