I think this is related to the SWT toolkit.. I tried using gdb on Eclipse, putting a breakpoint on gdk_x_error as suggested, but I can't get Eclipse to run synchronized against X. So instead I turned on verbose JNI output on the JVM, and this is the last output I got before it crashes:
...
...
...
[Dynamic-linking native method java.lang.StrictMath.pow ... JNI]
[Dynamic-linking native method org.eclipse.swt.internal.gtk.OS._pango_font_description_get_family ... JNI]
[Dynamic-linking native method org.eclipse.swt.internal.gtk.OS._pango_font_description_get_size ... JNI]
[Dynamic-linking native method org.eclipse.swt.internal.gtk.OS._pango_font_description_get_style ... JNI]
[Dynamic-linking native method org.eclipse.swt.internal.gtk.OS._pango_font_description_get_weight ... JNI]
[Dynamic-linking native method org.eclipse.swt.internal.gtk.OS._pango_font_description_to_string ... JNI]
[Dynamic-linking native method org.eclipse.swt.internal.gtk.OS._pango_font_description_from_string ... JNI]
[Dynamic-linking native method org.eclipse.swt.internal.gtk.OS._pango_context_list_families ... JNI]
[Dynamic-linking native method org.eclipse.swt.internal.gtk.OS._pango_font_family_get_name ... JNI]
[Dynamic-linking native method org.eclipse.swt.internal.gtk.OS._pango_font_family_list_faces ... JNI]
[Dynamic-linking native method org.eclipse.swt.internal.gtk.OS._pango_font_face_describe ... JNI]
[Dynamic-linking native method org.eclipse.swt.internal.gtk.OS._pango_font_description_free ... JNI]
[Dynamic-linking native method org.eclipse.swt.internal.gtk.OS._gdk_draw_rectangle ... JNI]
[Dynamic-linking native method org.eclipse.swt.internal.gtk.OS._gdk_colormap_free_colors ... JNI]
[Dynamic-linking native method org.eclipse.swt.internal.gtk.OS._gdk_draw_polygon ... JNI]
[Dynamic-linking native method org.eclipse.swt.internal.gtk.OS._gdk_pixbuf_get_from_drawable ... JNI]
[Dynamic-linking native method java.util.zip.ZipFile.getNextEntry ... JNI]
[Dynamic-linking native method org.eclipse.swt.internal.gtk.OS._gtk_label_set_text_with_mnemonic ... JNI]
[Dynamic-linking native method org.eclipse.swt.internal.gtk.OS._XCheckIfEvent ... JNI]
[Dynamic-linking native method org.eclipse.swt.internal.gtk.OS._gtk_window_resize ... JNI]
[Dynamic-linking native method org.eclipse.swt.internal.gtk.OS._gdk_drawable_get_depth ... JNI]
The program 'Eclipse' received an X Window System error.
This probably reflects a bug in the program.
The error was 'BadAlloc (insufficient resources for operation)'.
(Details: serial 948 error_code 11 request_code 150 minor_code 5)
(Note to programmers: normally, X errors are reported asynchronously;
that is, you will receive the error a while after causing it.
To debug your program, run it with the --sync command line
option to change this behavior. You can then get a meaningful
backtrace from your debugger if you break on the gdk_x_error() function.)
So, when the native method org.eclipse.swt.internal.gtk.OS._gdk_drawable_get_depth is called, it seems to cause X problems. This was the best I could do in a short time..
I think this is related to the SWT toolkit.. I tried using gdb on Eclipse, putting a breakpoint on gdk_x_error as suggested, but I can't get Eclipse to run synchronized against X. So instead I turned on verbose JNI output on the JVM, and this is the last output I got before it crashes:
... StrictMath. pow ... JNI] swt.internal. gtk.OS. _pango_ font_descriptio n_get_family ... JNI] swt.internal. gtk.OS. _pango_ font_descriptio n_get_size ... JNI] swt.internal. gtk.OS. _pango_ font_descriptio n_get_style ... JNI] swt.internal. gtk.OS. _pango_ font_descriptio n_get_weight ... JNI] swt.internal. gtk.OS. _pango_ font_descriptio n_to_string ... JNI] swt.internal. gtk.OS. _pango_ font_descriptio n_from_ string ... JNI] swt.internal. gtk.OS. _pango_ context_ list_families ... JNI] swt.internal. gtk.OS. _pango_ font_family_ get_name ... JNI] swt.internal. gtk.OS. _pango_ font_family_ list_faces ... JNI] swt.internal. gtk.OS. _pango_ font_face_ describe ... JNI] swt.internal. gtk.OS. _pango_ font_descriptio n_free ... JNI] swt.internal. gtk.OS. _gdk_draw_ rectangle ... JNI] swt.internal. gtk.OS. _gdk_colormap_ free_colors ... JNI] swt.internal. gtk.OS. _gdk_draw_ polygon ... JNI] swt.internal. gtk.OS. _gdk_pixbuf_ get_from_ drawable ... JNI] zip.ZipFile. getNextEntry ... JNI] swt.internal. gtk.OS. _gtk_label_ set_text_ with_mnemonic ... JNI] swt.internal. gtk.OS. _XCheckIfEvent ... JNI] swt.internal. gtk.OS. _gtk_window_ resize ... JNI] swt.internal. gtk.OS. _gdk_drawable_ get_depth ... JNI]
...
...
[Dynamic-linking native method java.lang.
[Dynamic-linking native method org.eclipse.
[Dynamic-linking native method org.eclipse.
[Dynamic-linking native method org.eclipse.
[Dynamic-linking native method org.eclipse.
[Dynamic-linking native method org.eclipse.
[Dynamic-linking native method org.eclipse.
[Dynamic-linking native method org.eclipse.
[Dynamic-linking native method org.eclipse.
[Dynamic-linking native method org.eclipse.
[Dynamic-linking native method org.eclipse.
[Dynamic-linking native method org.eclipse.
[Dynamic-linking native method org.eclipse.
[Dynamic-linking native method org.eclipse.
[Dynamic-linking native method org.eclipse.
[Dynamic-linking native method org.eclipse.
[Dynamic-linking native method java.util.
[Dynamic-linking native method org.eclipse.
[Dynamic-linking native method org.eclipse.
[Dynamic-linking native method org.eclipse.
[Dynamic-linking native method org.eclipse.
The program 'Eclipse' received an X Window System error.
This probably reflects a bug in the program.
The error was 'BadAlloc (insufficient resources for operation)'.
(Details: serial 948 error_code 11 request_code 150 minor_code 5)
(Note to programmers: normally, X errors are reported asynchronously;
that is, you will receive the error a while after causing it.
To debug your program, run it with the --sync command line
option to change this behavior. You can then get a meaningful
backtrace from your debugger if you break on the gdk_x_error() function.)
So, when the native method org.eclipse. swt.internal. gtk.OS. _gdk_drawable_ get_depth is called, it seems to cause X problems. This was the best I could do in a short time..