- 1 Introduction
- 2 Launching
- 3 Java Debugging
- 4 Variables View
- 5 Console
- 6 Links
How do I contribute to this FAQ?
How can I help out the Debug Team?
Check out our Get Involved page for info on how you can contribute to the debug components and get involved in the Eclipse open-source project.
What is contextual launching?
Contextual launching is a new, simpler way of launching in Eclipse built using all of the familiar launching metaphors.
In the traditional launching mode, Eclipse would simply launch the last thing that was was launched. With context launching, what gets launched is determined by what the current selection in the workbench is. For example, if you have a Java file with a main method open in the editor, pressing "run" (or debug) will launch it as a Java application. Even if you have not created or know how to create a launch configuration for the launch, the context launching framework will create one for you (which you can edit at any time via the launch configuration dialog).
Context launching is the default method for launching in 3.3 M7 builds and later.
For interests sake there is more information in this paper on context launching.
How do I turn off contextual launching?
If you just can't get over the old way of doing things, you can do so on the Run/Debug > Launching Preference Page. Change the Launch Operation option to "Always launch the previously launched application".
Check that you are suspended (manually or on a breakpoint) and have a valid stack frame selected in the Debug view. Sometimes the stack frame selection is lost. If this is happening to you often and you have a test case to reproduce the problem, please file a bug.
Hyperlink debugging is the coolest and fastest way to debug through Java code. When suspended, holding Ctrl + Alt and clicking on a method will result in the debugger attempting to resume to that line and step into the method you clicked on.
What are logical structures?
Logical structures are alternative ways of displaying the contents of items in the variables, expressions and registers views. The option to show logical structures is controlled by a button in the view toolbar with the tooltip "Show Logical Structures". By creating and using logical structures you can display the contents of an item in a logical and practical manner instead of displaying information determined by the implementation. JDT provides several logical structures for java types. Collections types are displayed as an array of values, Maps are displayed as an array of map entries (and map entries have a logical structure to be displayed as key/value pairs). Finally, Composites are displayed as an array of children Controls. JDT also provides a preference page (Java > Debug > Logical Structures) where you can create and edit logical structures of your own.
What are detail formatters?
Detail formatters are alternative ways of determining the text that is displayed in the detail pane of the variables and expressions view when a Java variable is selected. By default, when a java type is selected, the detail pane will display the toString() result in the detail pane. A detail formatter will provide a snippet of code that will return a String to display in the detail pane. You can add and edit detail formatters on the detail formatter preference page (Java > Debug > Detail Formatters).
What is the detail pane?
The detail pane is the separate area of the variables, expressions and registers views that displays more detailed information about the currently selected item in a text format. By default selecting a Java variable will result in the toString() result being displayed in the detail pane. The detail pane can be resized and its location can be changed by using the Layout submenu in the view drop down menu. By using the org.eclipse.debug.ui.detailPaneFactories extension point, plug-ins can contribute custom detail panes that can display information using different widgets.
How do I fix an IllegalArgumentException coming from the Variable View's SashForm?
This was fixed in 3.3. An invalid value is stored in the view's memento. You can clear out this value by clearing your workspace preferences, or opening <workspace loc>\.metadata\.plugins\org.eclipse.core.runtime\.settings\org.eclipse.debug.ui.prefs and changing SASH_DETAILS_PART to a value of 6 and SASH_VIEW_PART to a value of 13. See Bug 199385 for more information.
Why does Eclipse sometimes hang when a lot of output is written to the console?
If you are writing a large amount of data to the Console streams from the UI thread, the console will be unable to clear the buffer. See Bug 136943