Introduction to Debugging in Java and Netbeans

25 10 2011

Netbeans provides powerful support for debugging your Java programs. In this tutorial we look at the basics of debugging, primarily setting breakpoints in a program and querying values during program execution.

Figure 1 illustrates a simple Java program. The program doesn’t accomplish much; it’s just intended as a starting point for our tutorial.

See all 7 photos
Figure 01 – A simple Java program that we can use to illustrate debugging techniques

Our program contains a print statement. Such a statement is the most elementary form of debugging. Figure 02 illustrates the output generated by the program.

Figure 02 – The output of our program

Let’s take the next step and use the debugging tools provided by Netbeans and Java. In Figure 03 we set a breakpoint. The breakpoint will cause the program to pause so we can examine what it’s up to while it’s still running.

We don’t have to execute the program by hand. We set the breakpoint, start the program in Debug Mode, and wait for the breakpoint to get hit.

Figure 03 – Setting a breakpoint in a program

The next step is to run the program, but we have to run it in a special way to take advantage of the breakpoint. Figure 04 shows how to launch the program in Debug Mode.

in Debug Mode, the program will stop on breakpoints. Debug Mode causes the program to run more slowly than non-Debug Mode, but that’s a small price to pay for the power and flexibility of debugging. Debug Mode has a negligible effect on most small programs.


Figure 04 – Launching a program in Debug Mode

In Figure 05 the program has been launched in Debug Mode, it started running, ran up to the breakpoint, and paused. The next line to be executed is highlighted in green by NetBeans.


Note: be sure that your breakpoint will be in the execution path. If it’s not in the execution path, it won’t cause the program to pause. That can get frustrating.

Figure 05 – The program has paused on the breakpoint. Note the green highlight.

This is the good part. The program is in suspended animation. We can examine the state of the variables and learn precisely what is happening.

Remember that the green highlight is on the next line to be executed. The line of code has not been executed, yet.

In Figure 06 the mouse hovers over the variable alpha and NetBeans displays the current value of the variable in a context bubble. Very cool.

The value of alpha is 3 because it was initialized to that value in line 11, where it was declared.

Figure 06 – The current value of the variable alpha is displayed by Netbeans
Figure 07 – Single Stepping through a program

One more feature we will introduce is the concept of single-stepping. Since the green highlighted line has not yet been executed, we click Debug / Step Over (or press the F8 key) to excecute that line. The green highlight moves to the next line in the program.

You can use single-stepping to follow the code path of your program and find logic errors lurking deep within your code.




Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: