Time for action – debugging a plug-in
Debugging an Eclipse plug-in is much the same as running an Eclipse plug-in, except that breakpoints can be used, the state of the program can be updated, and variables and minor changes to the code can be made. Rather than debugging plug-ins individually, the entire Eclipse launch configuration is started in debug mode. That way, all the plug-ins can be debugged at the same time.
Although run mode is slightly faster, the added flexibility of being able to make changes makes debug mode much more attractive to use as a default.
Start the target Eclipse instance by navigating to Debug | Debug As | Eclipse Application, or by clicking on debug in the toolbar.
- Click on the hello world icon in the target Eclipse to display the dialog, as before, and click on OK to dismiss it.
- In the host Eclipse, open the
SampleHandler
class and go to the first line of theexecute
method. - Add a breakpoint by double-clicking in the vertical ruler (the grey/blue bar on the left of the editor), or by pressing Ctrl + Shift + B (or Cmd + Shift + B on macOS). A blue dot representing the breakpoint will appear in the ruler:
- Click on the hello world icon in the target Eclipse to display the dialog, and the debugger will pause the thread at the breakpoint in the host Eclipse:
Note
The debugger perspective will open whenever a breakpoint is triggered and the program will be paused. While it is paused, the target Eclipse is unresponsive. Any clicks on the target Eclipse application will be ignored, and it will show a busy cursor.
- In the top right, variables that are active in the line of code are shown. In this case, it's just the implicit variables (via
this
), any local variables (none yet), as well as the parameter (in this case,event
). - Click on Step Over or press F6, and window will be added to the list of available variables:
- When ready to continue, click on resume or press F8 to keep running.
What just happened?
The built-in Eclipse debugger was used to launch Eclipse in debug mode. By triggering an action that led to a breakpoint, the debugger was revealed, allowing the local variables to be inspected.
When in the debugger, there are several ways to step through the code:
- Step Over: This allows stepping over line by line in the method
- Step Into: This follows the method calls recursively as execution unfolds
Note
There is also a Run | Step into Selection menu item; it does not have a toolbar icon. It can be invoked with Ctrl + F5 (Alt + F5 on macOS) and is used to step into a specific expression.
- Step Return: This jumps to the end of a method
- Drop to Frame: This returns to a stack frame in the thread to re-run an operation