Java Reference
In-Depth Information
counterparts in the running program. This speeds the debugging process
because it lets you try out your bug fixes immediately, rather than redeploying
and executing the application.
There are limits to the type of changes you can make to a class that has been
hot swapped. The exact requirements are
VM
dependent; but in general, the
more independent the change, the more likely that it's supported. Changes to
method signatures, interfaces, static members, and other elements that may be
referenced by other classes may be off limits. For example, changing the algo-
rithm behind a method may be supported, but removing a method completely
may not. For simplicity's sake, if a change is made that alters the way
other classes
use the changed class,
it may not be supported. If an incompatible change is
detected, you'll see an error message displayed in the
Messages
tool window.
6.5 Configuring the debugger
Debugging properties are stored with your project and are accessible by selecting
the
Debugger
control panel of the
IDE
Settings
as shown in figure 6.12. These
options control not only how the debugger runs, but also how it displays runtime
information. You can use these settings to customize the settings to your liking
and to increase the speed and efficiency of the debugging process.
6.5.1
Managing display preferences
IDEA
provides a number of options for customizing the behavior and display of
data values in the debugger. Under the
General
group in the
Debugger
window,
you'll find these two settings:
Hide debug window on process termination
, if selected, makes
IDEA
automatically close the
Debug
tool window when the process you're debug-
ging exits.
■
Va l u e t o o l t i p s d e l a y
specifies the delay (in ms) that you have to hover your
mouse over a variable in the Editor window before
IDEA
shows you its cur-
rent value through a tooltip.
■
The option
Reload classes after compilation
is used by
IDEA
's hot-swap debug-
ging facility. This setting determines how
IDEA
reacts to compiling classes while
the debugger is active. It determines whether the hot swap automatically reloads
classes or asks you each time.