We will now start the debugging process over again in order to catch new bugs,
or previously missed bugs. First, we will want to reset our breakpoints. We
are no longer interested in what is happening within the while() loop;
we are only interested in the program's state immediately before the loop and
immediately after the loop. Follow these steps to set up the new breakpoints:
Start the debugger (see "Step 2: Running the Debugger"). The program will stop executing on line 17. Inspect the data in the Gild Debug View:
The variable that we are interested in is powerOfTwo
. Its value
is 1, which is correct. We want to continue running the program. However, we
don’t want to step through the entire program, especially when we aren’t
interested in what is happening within the while()
loop.
There is a facility that allows us to resume program execution without having
to use the stepping functionality. It is called
resume. This feature continues program execution
from the current line until the program is completed,
or until a breakpoint has been reached. We are interested in the state of the
variables just after the while()
loop, and we already have a breakpoint
there. Press the "Resume" button of the
Gild Debug View to run our program up to (but not including) line
number 28. Now, inspect the data in the Gild Debug View:
Again, the variables have the right values. But we are not getting the right output. What we need to do is insert a line of code for output. Follow these steps:
System.out.println("The current power of 2 is " + powerOfTwo);
|
You should be presented with the following output in the Console View at the bottom of your screen:
The current power of 2 is 1 The current power of 2 is 2 The current power of 2 is 4 The current power of 2 is 8 The current power of 2 is 16 The current power of 2 is 32 2^5 = 32 |
This is the correct output. We have successfully debugged our program.