create your own

Introduction to Debugging in Java and Netbeans

72
rate or flag this page

By nicomp

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.

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
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
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
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.
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 06 - The current value of the variable alpha is displayed by Netbeans
Figure 07 - Single Stepping through a program
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.

Comments

RSS for comments on this Hub

No comments yet.

Submit a Comment

Members and Guests

Sign in or sign up and post using a hubpages account.


optional


  • No HTML is allowed in comments, but URLs will be hyperlinked
  • Comments are not for promoting your hubs or other sites

  • New Language Running on the JVM

    Google and several other companies have intorduced a new language experiment called Noop that runs on the JVM. It tried to include all the best practices in the programming world while discouraging the the worst ones. On their Google Code site the following reasons to use Noop over other languages. Dependency Injection changed the way we [...] - 3 months ago

  • SDK update for Java FX

    As many of you know the new SDK update was release for Java FX. Their are many significant changes that have been made. Most are for the better. Below are some new classes that have been added for creating UI controls. Behavior Button ButtonBase CheckBox Control Hyperlink Keystroke Label Labeled ListView ProgressBar ProgressIndicator RadioButton ScrollBar [...] - 5 months ago

  • JavaFX

    Sun has released a new video that shows some of the new features of JavaFX. They are demonstrated by Jacob Lehrbaum, Senior Product Line Manager for JavaFX Marketing. JavaFX is a platform for creating and delivering Rich Internet Applications (RIAs) — web applications that use rich media types such as video, audio, graphics, and rich text [...] - 9 months ago

working