From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?Q?G=C3=A1bor?= Boskovits Subject: bug#30591: Vinagre segmentation fault - and gdb cannot find symbols? Date: Sat, 24 Feb 2018 09:24:22 +0100 Message-ID: References: <87tvu6q0mj.fsf@gmail.com> Mime-Version: 1.0 Content-Type: multipart/alternative; boundary="001a114ab6fa0f31fa0565f101e2" Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:37225) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1epV8k-0007gj-8f for bug-guix@gnu.org; Sat, 24 Feb 2018 03:25:07 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1epV8h-0006hV-02 for bug-guix@gnu.org; Sat, 24 Feb 2018 03:25:06 -0500 Received: from debbugs.gnu.org ([208.118.235.43]:50269) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1epV8g-0006h3-Qk for bug-guix@gnu.org; Sat, 24 Feb 2018 03:25:02 -0500 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1epV8f-00088r-Je for bug-guix@gnu.org; Sat, 24 Feb 2018 03:25:02 -0500 Sender: "Debbugs-submit" Resent-Message-ID: In-Reply-To: <87tvu6q0mj.fsf@gmail.com> List-Id: Bug reports for GNU Guix List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-guix-bounces+gcggb-bug-guix=m.gmane.org@gnu.org Sender: "bug-Guix" To: Chris Marusich Cc: 30591@debbugs.gnu.org --001a114ab6fa0f31fa0565f101e2 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable 2018-02-24 8:59 GMT+01:00 Chris Marusich : > Hi, > > Recently, I've noticed that Vinagre segfaults when I initiate a > connection. To reproduce, try doing the following: > > 1) Install Vinagre. > 2) Try to connect to a remote host. > 3) Vinagre displays a black screen, and about 10-20 seconds later, it > crashes. > > I've obtained a core dump, but it seems I can't get debug symbols from > it. I'm using a custom version that adds a "debug" output, and my > ~/.gdbinit is set up according to what Guix recommends in its manual > ((guix) Installing Debugging Files). What do I need to do to get gdb to > give me useful information? > > Example debugging session follows: > > --8<---------------cut here---------------start------------->8--- > [0] marusich@garuda.local:~/debug-vinagre > $ cat ~/.gdbinit > # Tell GDB where to look for separate debugging files. > set debug-file-directory ~/.guix-profile/lib/debug > # Let GDB auto-load any files it needs. > set auto-load safe-path / > [0] marusich@garuda.local:~/debug-vinagre > $ file core > core: ELF 64-bit LSB core file x86-64, version 1 (SYSV), SVR4-style, from > '/home/marusich/.guix-profile/bin/vinagre', real uid: 1000, effective > uid: 1000, real gid: 998, effective gid: 998, execfn: '/gnu/store/ > 7w9pimrkk7n1f9zxw9va6jkhmgyw8bbv-maru-vinagre-3.22.0/bin/.vinagre-real', > platform: 'x86_64' > [0] marusich@garuda.local:~/debug-vinagre > $ tree ~/.guix-profile/lib/debug/ > /home/marusich/.guix-profile/lib/debug/ > =E2=94=94=E2=94=80=E2=94=80 gnu > =E2=94=94=E2=94=80=E2=94=80 store > =E2=94=9C=E2=94=80=E2=94=80 7w9pimrkk7n1f9zxw9va6jkhmgyw8bbv-maru= -vinagre-3.22.0 -> > /gnu/store/j6nkca3pr1vhbd8bf25pphcwk66fb7nj-maru-vinagre-3.22.0-debug/ > lib/debug/gnu/store/7w9pimrkk7n1f9zxw9va6jkhmgyw8bbv-maru-vinagre-3.22.0 > =E2=94=94=E2=94=80=E2=94=80 n6nvxlk2j8ysffjh3jphn1k5silnakh6-glib= c-2.25 -> /gnu/store/ > z1y36la9q1xkc5i5vcxqm7d995nrngmn-gcc-toolchain-7.2.0/lib/debug/gnu/store/ > n6nvxlk2j8ysffjh3jphn1k5silnakh6-glibc-2.25 > > 4 directories, 0 files > [0] marusich@garuda.local:~/debug-vinagre > $ grep -A99 ~/custom-guix-packages/ > marusich.scm marusich.scm~ my-packages/ > [0] marusich@garuda.local:~/debug-vinagre > $ grep -A99 maru-vinagre ~/custom-guix-packages/marusich.scm > (define-public maru-vinagre > (package (inherit vinagre) > (name "maru-vinagre") > (outputs '("out" "debug")))) > [0] marusich@garuda.local:~/debug-vinagre > $ guix package --list-installed | grep maru-vinagre > maru-vinagre 3.22.0 debug /gnu/store/j6nkca3pr1vhbd8bf25pphcwk66fb7 > nj-maru-vinagre-3.22.0-debug > maru-vinagre 3.22.0 out /gnu/store/7w9pimrkk7n1f9zxw9va6jkhmgyw8b > bv-maru-vinagre-3.22.0 > [0] marusich@garuda.local:~/debug-vinagre > $ gdb --quiet /gnu/store/7w9pimrkk7n1f9zxw9va6jkhmgyw8b > bv-maru-vinagre-3.22.0/bin/.vinagre-real core > Reading symbols from /gnu/store/7w9pimrkk7n1f9zxw9va6jkhmgyw8b > bv-maru-vinagre-3.22.0/bin/.vinagre-real... > warning: the debug information found in "/home/marusich/.guix-profile/ > lib/debug//gnu/store/7w9pimrkk7n1f9zxw9va6jkhmgyw8b > bv-maru-vinagre-3.22.0/bin/.vinagre-real.debug" does not match > "/gnu/store/7w9pimrkk7n1f9zxw9va6jkhmgyw8bbv-maru-vinagre-3.22.0/bin/.vin= agre-real" > (CRC mismatch). > > I've also seen this before. My workaround was that I created a package disabling strip-binaries. That worked well enough. I've also added -g3 to flags, as I needed macro expansions in debug. If you find out anything useful for the CRC mismatch thing thou, I would be really interested. That would have saved me lot of time. > (no debugging symbols found)...done. > [New LWP 28789] > [New LWP 28790] > [New LWP 28791] > [New LWP 28792] > [Thread debugging using libthread_db enabled] > Using host libthread_db library "/gnu/store/3h31zsqxjjg52da5gp3qmhkh4x8kl= h > ah-glibc-2.25/lib/libthread_db.so.1". > Core was generated by `/home/marusich/.guix-profile/bin/vinagre'. > Program terminated with signal SIGSEGV, Segmentation fault. > #0 0x00007f173c081707 in vnc_connection_coroutine () from /gnu/store/ > slxc1lf23wdzjamn6pfp2inrzy74dbwh-gtk-vnc-0.7.0/lib/libgvnc-1.0.so.0 > [Current thread is 1 (Thread 0x7f1741e67500 (LWP 28789))] > (gdb) l > No symbol table is loaded. Use the "file" command. > (gdb) where > #0 0x00007f173c081707 in vnc_connection_coroutine () from /gnu/store/ > slxc1lf23wdzjamn6pfp2inrzy74dbwh-gtk-vnc-0.7.0/lib/libgvnc-1.0.so.0 > #1 0x00007f173c08489f in coroutine_trampoline () from /gnu/store/ > slxc1lf23wdzjamn6pfp2inrzy74dbwh-gtk-vnc-0.7.0/lib/libgvnc-1.0.so.0 > #2 0x00007f173ae6c990 in ?? () from /gnu/store/ > 3h31zsqxjjg52da5gp3qmhkh4x8klhah-glibc-2.25/lib/libc.so.6 > #3 0x000000000101ec08 in ?? () > #4 0x0000000000000000 in ?? () > (gdb) > --8<---------------cut here---------------end--------------->8--- > > I'm pretty new to debugging C programs in gdb, so if I'm making any > obvious mistakes, I'd really appreciate it if you'd let me know! > > Thank you, > > -- > Chris > --001a114ab6fa0f31fa0565f101e2 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
2018= -02-24 8:59 GMT+01:00 Chris Marusich <cmmarusich@gmail.com>:
Hi,

Recently, I've noticed that Vinagre segfaults when I initiate a
connection.=C2=A0 To reproduce, try doing the following:

1) Install Vinagre.
2) Try to connect to a remote host.
3) Vinagre displays a black screen, and about 10-20 seconds later, it
crashes.

I've obtained a core dump, but it seems I can't get debug symbols f= rom
it.=C2=A0 I'm using a custom version that adds a "debug" outp= ut, and my
~/.gdbinit is set up according to what Guix recommends in its manual
((guix) Installing Debugging Files).=C2=A0 What do I need to do to get gdb = to
give me useful information?

Example debugging session follows:

--8<---------------cut here---------------start------------->8--= -
[0] marusich@garuda.local:~/debug-vinagre
$ cat ~/.gdbinit
# Tell GDB where to look for separate debugging files.
set debug-file-directory ~/.guix-profile/lib/debug
# Let GDB auto-load any files it needs.
set auto-load safe-path /
[0] marusich@garuda.local:~/debug-vinagre
$ file core
core: ELF 64-bit LSB core file x86-64, version 1 (SYSV), SVR4-style, from &= #39;/home/marusich/.guix-profile/bin/vinagre', real uid: 1000, eff= ective uid: 1000, real gid: 998, effective gid: 998, execfn: '/gnu/stor= e/7w9pimrkk7n1f9zxw9va6jkhmgyw8bbv-maru-vinagre-3.22.0/bin/.= vinagre-real', platform: 'x86_64'
[0] marusich@garuda.local:~/debug-vinagre
$ tree ~/.guix-profile/lib/debug/
/home/marusich/.guix-profile/lib/debug/
=E2=94=94=E2=94=80=E2=94=80 gnu
=C2=A0 =C2=A0 =E2=94=94=E2=94=80=E2=94=80 store
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =E2=94=9C=E2=94=80=E2=94=80 7w9pimrkk7n1f9zxw9v= a6jkhmgyw8bbv-maru-vinagre-3.22.0 -> /gnu/store/j6nkca3pr1vhbd= 8bf25pphcwk66fb7nj-maru-vinagre-3.22.0-debug/lib/debug/gnu/store/= 7w9pimrkk7n1f9zxw9va6jkhmgyw8bbv-maru-vinagre-3.22.0
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =E2=94=94=E2=94=80=E2=94=80 n6nvxlk2j8ysffjh3jp= hn1k5silnakh6-glibc-2.25 -> /gnu/store/z1y36la9q1xkc5i5vcxqm7d= 995nrngmn-gcc-toolchain-7.2.0/lib/debug/gnu/store/n6nvxlk2j8= ysffjh3jphn1k5silnakh6-glibc-2.25

4 directories, 0 files
[0] marusich@garuda.local:~/debug-vinagre
$ grep -A99 ~/custom-guix-packages/
marusich.scm=C2=A0 =C2=A0marusich.scm~=C2=A0 my-packages/
[0] marusich@garuda.local:~/debug-vinagre
$ grep -A99 maru-vinagre ~/custom-guix-packages/marusich.scm
(define-public maru-vinagre
=C2=A0 (package (inherit vinagre)
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(name "maru-vinagre") =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(outputs '("out" &qu= ot;debug"))))
[0] marusich@garuda.local:~/debug-vinagre
$ guix package --list-installed | grep maru-vinagre
maru-vinagre=C2=A0 =C2=A0 3.22.0=C2=A0 debug=C2=A0 =C2=A0/gnu/store/j6= nkca3pr1vhbd8bf25pphcwk66fb7nj-maru-vinagre-3.22.0-debug
maru-vinagre=C2=A0 =C2=A0 3.22.0=C2=A0 out=C2=A0 =C2=A0 =C2=A0/gnu/store/7w9pimrkk7n1f9zxw9va6jkhmgyw8bbv-maru-vinagre-3.22.0
[0] marusich@garuda.local:~/debug-vinagre
$ gdb --quiet /gnu/store/7w9pimrkk7n1f9zxw9va6jkhmgyw8bbv-maru-vi= nagre-3.22.0/bin/.vinagre-real core
Reading symbols from /gnu/store/7w9pimrkk7n1f9zxw9va6jkhmgyw8bbv-= maru-vinagre-3.22.0/bin/.vinagre-real...
warning: the debug information found in "/home/marusich/.guix-profile/= lib/debug//gnu/store/7w9pimrkk7n1f9zxw9va6jkhmgyw8bbv-maru-v= inagre-3.22.0/bin/.vinagre-real.debug" does not match "/gnu/= store/7w9pimrkk7n1f9zxw9va6jkhmgyw8bbv-maru-vinagre-3.22.0/bin/.<= wbr>vinagre-real" (CRC mismatch).


I've also seen this before. My wor= karound was that I created a package disabling strip-binaries. That worked = well enough. I've also added -g3 to flags, as I needed macro expansions= in debug. If you find out anything useful for the CRC mismatch thing thou,= I would be really interested. That would have saved me lot of time.
<= div>=C2=A0
(no debugging symbols found)...done.
[New LWP 28789]
[New LWP 28790]
[New LWP 28791]
[New LWP 28792]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/gnu/store/3h31zsqxjjg52da5gp3qm= hkh4x8klhah-glibc-2.25/lib/libthread_db.so.1".
Core was generated by `/home/marusich/.guix-profile/bin/vinagre'.<= br> Program terminated with signal SIGSEGV, Segmentation fault.
#0=C2=A0 0x00007f173c081707 in vnc_connection_coroutine () from /gnu/store/= slxc1lf23wdzjamn6pfp2inrzy74dbwh-gtk-vnc-0.7.0/lib/libgvnc-1= .0.so.0
[Current thread is 1 (Thread 0x7f1741e67500 (LWP 28789))]
(gdb) l
No symbol table is loaded.=C2=A0 Use the "file" command.
(gdb) where
#0=C2=A0 0x00007f173c081707 in vnc_connection_coroutine () from /gnu/store/= slxc1lf23wdzjamn6pfp2inrzy74dbwh-gtk-vnc-0.7.0/lib/libgvnc-1= .0.so.0
#1=C2=A0 0x00007f173c08489f in coroutine_trampoline () from /gnu/store/slxc1lf23wdzjamn6pfp2inrzy74dbwh-gtk-vnc-0.7.0/lib/libgvnc-1.0.s= o.0
#2=C2=A0 0x00007f173ae6c990 in ?? () from /gnu/store/3h31zsqxjjg52da5g= p3qmhkh4x8klhah-glibc-2.25/lib/libc.so.6
#3=C2=A0 0x000000000101ec08 in ?? ()
#4=C2=A0 0x0000000000000000 in ?? ()
(gdb)
--8<---------------cut here---------------end--------------->8--= -

I'm pretty new to debugging C programs in gdb, so if I'm making any=
obvious mistakes, I'd really appreciate it if you'd let me know!
Thank you,

--
Chris

--001a114ab6fa0f31fa0565f101e2--