On Sun, 2017-12-31 at 09:47 +1100, Adam Carter wrote:
> * Install gdb if it isn't already installed
> > * Make sure a core file is presend in coredumpd, coredumpctl should
> > show; if not, have it crash again so it's fresh and saved in there
> > 
> > * coredumpctl gdb gedit
> > 
> > * bt full
> > 
> > Post output of that "bt full"
> > 
> > 
> 
> (gdb) bt full
> #0  0x00007f60cd333a74 in g_main_context_prepare () from
> /usr/lib64/libglib-2.0.so.0
> No symbol table info available.
> #1  0x00007f60cd33449b in ?? () from /usr/lib64/libglib-2.0.so.0
> No symbol table info available.
> #2  0x00007f60cd334693 in g_main_context_iteration () from
> /usr/lib64/libglib-2.0.so.0
> No symbol table info available.
> #3  0x00007f60d047676a in g_application_run () from
> /usr/lib64/libgio-2.0.so.0
> No symbol table info available.
> #4  0x0000563890d41d59 in main ()
> No symbol table info available.
> 
> FWIW I have -fomit-frame-pointer set - should i rebuild glib & gedit
> with that or some other options changed?

-fomit-frame-pointer is the default on x86_64/amd64 in most situations.
-fno-omit-frame-pointer might help, but usually that's useful for
sample based profiling (like sysprof), which can't spend time unwinding
the traces with more complex ways during sample collection.
Here you already actually have the full backtrace available, even most
symbol names, so it could already unwind it. Best to have full debug
symbols then with CFLAGS including e.g -ggdb and FEATURES having
"splitdebug compressdebug". This can be done per-package, but if
there's disk space available for /usr/lib64/debug (could also be a
symlink to an always mounted data disk), it doesn't hurt to just always
have it enabled for all. Well, it does hurt compilation time a bit, and
a lot for big packages like chromium/webkit-gtk, for which this could
then be disabled instead. Anyhow, up to you how much you enable. For
this backtrace, dev-libs/glib is the one of interest.

That said, this looks really weird place to crash, and I doubt there's
threads going on with it unable to show the correct one.
t a a b f would make sure instead of bt full (the former is short for
thread apply all backtrace full, so the same as bt full, but will show
all threads, not current only).
I'm not sure debug information for the backtrace will help much, but
debug symbols + some more gdb usage than just getting the trace might
help.

Mart

Reply via email to