Gentoo Archives: gentoo-user

From: Mart Raudsepp <leio@g.o>
To: gentoo-user@l.g.o
Subject: Re: [gentoo-user] segfault in gedit / glib
Date: Tue, 02 Jan 2018 11:33:47
Message-Id: 1514892813.31539.3.camel@gentoo.org
In Reply to: Re: [gentoo-user] segfault in gedit / glib by Adam Carter
1 On Sun, 2017-12-31 at 09:47 +1100, Adam Carter wrote:
2 > * Install gdb if it isn't already installed
3 > > * Make sure a core file is presend in coredumpd, coredumpctl should
4 > > show; if not, have it crash again so it's fresh and saved in there
5 > >
6 > > * coredumpctl gdb gedit
7 > >
8 > > * bt full
9 > >
10 > > Post output of that "bt full"
11 > >
12 > >
13 >
14 > (gdb) bt full
15 > #0  0x00007f60cd333a74 in g_main_context_prepare () from
16 > /usr/lib64/libglib-2.0.so.0
17 > No symbol table info available.
18 > #1  0x00007f60cd33449b in ?? () from /usr/lib64/libglib-2.0.so.0
19 > No symbol table info available.
20 > #2  0x00007f60cd334693 in g_main_context_iteration () from
21 > /usr/lib64/libglib-2.0.so.0
22 > No symbol table info available.
23 > #3  0x00007f60d047676a in g_application_run () from
24 > /usr/lib64/libgio-2.0.so.0
25 > No symbol table info available.
26 > #4  0x0000563890d41d59 in main ()
27 > No symbol table info available.
28 >
29 > FWIW I have -fomit-frame-pointer set - should i rebuild glib & gedit
30 > with that or some other options changed?
31
32 -fomit-frame-pointer is the default on x86_64/amd64 in most situations.
33 -fno-omit-frame-pointer might help, but usually that's useful for
34 sample based profiling (like sysprof), which can't spend time unwinding
35 the traces with more complex ways during sample collection.
36 Here you already actually have the full backtrace available, even most
37 symbol names, so it could already unwind it. Best to have full debug
38 symbols then with CFLAGS including e.g -ggdb and FEATURES having
39 "splitdebug compressdebug". This can be done per-package, but if
40 there's disk space available for /usr/lib64/debug (could also be a
41 symlink to an always mounted data disk), it doesn't hurt to just always
42 have it enabled for all. Well, it does hurt compilation time a bit, and
43 a lot for big packages like chromium/webkit-gtk, for which this could
44 then be disabled instead. Anyhow, up to you how much you enable. For
45 this backtrace, dev-libs/glib is the one of interest.
46
47 That said, this looks really weird place to crash, and I doubt there's
48 threads going on with it unable to show the correct one.
49 t a a b f would make sure instead of bt full (the former is short for
50 thread apply all backtrace full, so the same as bt full, but will show
51 all threads, not current only).
52 I'm not sure debug information for the backtrace will help much, but
53 debug symbols + some more gdb usage than just getting the trace might
54 help.
55
56 Mart