Linux crash native stacks only have 1 line

David Holmes david.holmes at oracle.com
Mon Apr 6 13:21:28 UTC 2020


Hello,

On 6/04/2020 9:03 pm, Alexander Miloslavskiy wrote:
> Hello,
> 
> I'm working on fixing various crashes in our Java-based product.
> 
> There's one thing that consistently cripples my research: hs_err_pid.log 
> files will always contain just _one_ line of native stack on Linux. On 
> macOS, stack is fine.
> 
> So in most cases, I have no useful stack (the nearest Java frame is 
> something like GTK message loop).
> 
> Is there any switch to fix that? Can someone explain why is this happening?

I suggest you ask the Eclipse/SWT folk the answer to this as it seems to 
be their native code that isn't allowing an informative stacktrace to be 
obtained. It may have been compiled without the necessary frame 
back-pointers or otherwise lacks the metadata needed to reconstruct the 
stack.

David

> For some background, this is what I see in a typical crash log:
> --------
> Stack: [0x00007fcab1a14000,0x00007fcab1c14000],  sp=0x00007fcab1c117a0, 
> free space=2037k
> Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, 
> C=native code)
> C  [libgobject-2.0.so.0+0x36471]  g_type_check_instance+0x41
> 
> Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
> J 2857  org.eclipse.swt.internal.gtk.OS._g_main_context_iteration(JZ)Z 
> (0 bytes) @ 0x00007fca9d9f6ec4 [0x00007fca9d9f6e80+0x44]
> J 6486 C2 org.eclipse.swt.widgets.Display.readAndDispatch()Z (73 bytes) 
> @ 0x00007fca9dbf3a24 [0x00007fca9dbf3760+0x2c4]
> <...>
> --------
> 
> This is pretty much as good as "it crashed somewhere".
> 
> And this is the actual stack when I finally learn how to reproduce and 
> attach GDB:
> 
> --------
> #0  g_type_check_instance
> #1  g_signal_emit_by_name
> #2  gtk_im_multicontext_retrieve_surrounding_cb
> #3  _gtk_marshal_BOOLEAN__VOID
> #4  g_closure_invoke
> #5  signal_emit_unlocked_R
> #6  g_signal_emit_valist
> #7  g_signal_emit
> #8  _request_surrounding_text
> #9  _request_surrounding_text
> #10 _request_surrounding_text_after_focus
> #11 gdk_threads_dispatch
> #12 g_main_dispatch
> #13 g_main_context_dispatch
> #14 g_main_context_iterate
> #15 g_main_context_iteration
> #16 Java_org_eclipse_swt_internal_gtk_OS__1g_1main_1context_1iteration
> --------


More information about the hotspot-dev mailing list