How to report a deadlock
Say you've encountered a problem in Eclipse that has one of the following symptoms:
- A long pause where the GUI does not redraw or respond
- A deadlock or freeze where the GUI stops responding indefinitely
- CPU pegged at 100% indefinitely
- A modal dialog that won't close
In all of these cases, you should report a new bug. See FAQ How do I report a bug? for more information on reporting bugs. Include the following information in the report:
- What build of Eclipse you are using (see Help > About)
- What you were doing at the time of the deadlock (what dialog, wizard, editor, etc)
- Whether it is reproducible; if so, provide steps
- Once the bug report is created, attach a stack trace using the "Create a New Attachment" link in bugzilla.
If you are running on a Sun VM, the stack trace is typically just printed directly on the console. In this case, paste the contents into a file and then attach the file. Stack traces pasted directly into bugzilla look very ugly. On an IBM VM, the stack trace is written to a file in the working directory of the Java process. Typically this will be found in the eclipse install directory. The steps for producing a stack trace vary according to what operating system you are using:
Getting a stack trace on Windows
On Windows, the Java VM is typically started by an executable called javaw.exe. If you run with the java.exe executable instead, then a Java console window will appear while it is running. If you are interested in reporting bugs, it is useful to always run with a console open so you can obtain stack traces. Here is a typical command line for starting Eclipse using java.exe:
eclipse -vm c:\jre\bin\java.exe -vmargs -Xmx300M
Or, if you normally use your system's default java VM, you can use
eclipse -consolelog -debug
Once you have a Java console window, you can obtain a stack trace by simply hitting Ctrl+Break when the console window is active.
Note: its recommended you increase the "buffering size" of the console window, to a wide width such as 300 (default is usually 80) and perhaps even a long length (such as 3000) so there's plenty of room for a well formatted stack trace. Then, preferably, copy/paste the stack trace to a text file and attach it to a bugzilla, so its formatting is preserved.
Getting a stack trace on other platforms
On all Unix-based platforms, the steps for producing a stack dump are the same:
- Use the "ps" command to find out the process id (pid) of the Java VM
- Invoke "kill -3 <pid>" where <pid> is the process id of the Java VM