You are not logged in.

#1 2021-01-30 15:35:57

d_fajardo
Member
Registered: 2017-07-28
Posts: 1,567

[Solved] Segmentation fault starting gmchess

I had a fully functional gmchess that drives hoichess, the chinese chess engine. I haven't played for a while but when starting recently I got this seg fault:

           PID: 1258567 (gmchess)
           UID: 1000 (brightchip)
           GID: 1000 (brightchip)
        Signal: 11 (SEGV)
     Timestamp: Sat 2021-01-30 14:46:58 GMT (14min ago)
  Command Line: gmchess
    Executable: /usr/bin/gmchess
 Control Group: /user.slice/user-1000.slice/user@1000.service/app.slice/app-org.kde.konsole-6d2327b89dc94140a956b85f6ede1372.scope
          Unit: user@1000.service
     User Unit: app-org.kde.konsole-6d2327b89dc94140a956b85f6ede1372.scope
         Slice: user-1000.slice
     Owner UID: 1000 (brightchip)
       Boot ID: 2c6492a4c3a2455282a4083991db6200
    Machine ID: 0fb949def1e1446aadf8ee07e15b3cc1
      Hostname: taichi-z270
       Storage: /var/lib/systemd/coredump/core.gmchess.1000.2c6492a4c3a2455282a4083991db6200.1258567.1612018018000000.zst
       Message: Process 1258567 (gmchess) of user 1000 dumped core.
                
                Stack trace of thread 1258567:
                #0  0x00007f8ff2106109 _ZN3Gdk8Drawable11draw_pixbufERKN4Glib6RefPtrIKNS_2GCEEERKNS2_INS_6PixbufEEEiiiiiiNS_9RgbDitherEii (libgdkmm-2.4.so.1 + 0x2f109)
                #1  0x000056254a61dd45 n/a (gmchess + 0x1dd45)
                #2  0x000056254a61e546 n/a (gmchess + 0x1e546)
                #3  0x00007f8ff20b2c29 _ZN4Glib17SignalProxyNormal19slot0_void_callbackEP8_GObjectPv (libglibmm-2.4.so.1 + 0x61c29)
                #4  0x00007f8ff13d0052 g_closure_invoke (libgobject-2.0.so.0 + 0x13052)
                #5  0x00007f8ff13f8bd8 n/a (libgobject-2.0.so.0 + 0x3bbd8)
                #6  0x00007f8ff13ec59d g_signal_emit_valist (libgobject-2.0.so.0 + 0x2f59d)
                #7  0x00007f8ff13ecb00 g_signal_emit (libgobject-2.0.so.0 + 0x2fb00)
                #8  0x00007f8ff173c57b n/a (libgtk-x11-2.0.so.0 + 0x26c57b)
                #9  0x00007f8ff24764dc _ZN3Gtk12Widget_Class13show_callbackEP10_GtkWidget (libgtkmm-2.4.so.1 + 0x2ff4dc)
                #10 0x00007f8ff13d0052 g_closure_invoke (libgobject-2.0.so.0 + 0x13052)
                #11 0x00007f8ff13f863c n/a (libgobject-2.0.so.0 + 0x3b63c)
                #12 0x00007f8ff13ec59d g_signal_emit_valist (libgobject-2.0.so.0 + 0x2f59d)
                #13 0x00007f8ff13ecb00 g_signal_emit (libgobject-2.0.so.0 + 0x2fb00)
                #14 0x00007f8ff17335c8 gtk_widget_show (libgtk-x11-2.0.so.0 + 0x2635c8)
                #15 0x00007f8ff24763bf _ZN3Gtk12Widget_Class23show_all_vfunc_callbackEP10_GtkWidget (libgtkmm-2.4.so.1 + 0x2ff3bf)
                #16 0x000056254a640105 n/a (gmchess + 0x40105)
                #17 0x000056254a6180b4 n/a (gmchess + 0x180b4)
                #18 0x00007f8ff1b7a152 __libc_start_main (libc.so.6 + 0x28152)
                #19 0x000056254a618c6a n/a (gmchess + 0x18c6a)

GNU gdb (GDB) 10.1
Copyright (C) 2020 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-pc-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<https://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
    <http://www.gnu.org/software/gdb/documentation/>.

For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from /usr/bin/gmchess...
(No debugging symbols found in /usr/bin/gmchess)

warning: Can't open file /SYSV00000000 (deleted) during file-backed mapping note processing
[New LWP 1258567]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/usr/lib/libthread_db.so.1".
Core was generated by `gmchess'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0  0x00007f8ff2106109 in Gdk::Drawable::draw_pixbuf(Glib::RefPtr<Gdk::GC const> const&, Glib::RefPtr<Gdk::Pixbuf> const&, int, int, int, int, int, int, Gdk::RgbDither, int, int) ()
   from /usr/lib/libgdkmm-2.4.so.1
(gdb) bt
#0  0x00007f8ff2106109 in Gdk::Drawable::draw_pixbuf(Glib::RefPtr<Gdk::GC const> const&, Glib::RefPtr<Gdk::Pixbuf> const&, int, int, int, int, int, int, Gdk::RgbDither, int, int) ()
    at /usr/lib/libgdkmm-2.4.so.1
#1  0x000056254a61dd45 in  ()
#2  0x000056254a61e546 in  ()
#3  0x00007f8ff20b2c29 in Glib::SignalProxyNormal::slot0_void_callback(_GObject*, void*) () at /usr/lib/libglibmm-2.4.so.1
#4  0x00007f8ff13d0052 in g_closure_invoke () at /usr/lib/libgobject-2.0.so.0
#5  0x00007f8ff13f8bd8 in  () at /usr/lib/libgobject-2.0.so.0
#6  0x00007f8ff13ec59d in g_signal_emit_valist () at /usr/lib/libgobject-2.0.so.0
#7  0x00007f8ff13ecb00 in g_signal_emit () at /usr/lib/libgobject-2.0.so.0
#8  0x00007f8ff173c57b in  () at /usr/lib/libgtk-x11-2.0.so.0
#9  0x00007f8ff24764dc in Gtk::Widget_Class::show_callback(_GtkWidget*) () at /usr/lib/libgtkmm-2.4.so.1
#10 0x00007f8ff13d0052 in g_closure_invoke () at /usr/lib/libgobject-2.0.so.0
#11 0x00007f8ff13f863c in  () at /usr/lib/libgobject-2.0.so.0
#12 0x00007f8ff13ec59d in g_signal_emit_valist () at /usr/lib/libgobject-2.0.so.0
#13 0x00007f8ff13ecb00 in g_signal_emit () at /usr/lib/libgobject-2.0.so.0
#14 0x00007f8ff17335c8 in gtk_widget_show () at /usr/lib/libgtk-x11-2.0.so.0
#15 0x00007f8ff24763bf in Gtk::Widget_Class::show_all_vfunc_callback(_GtkWidget*) () at /usr/lib/libgtkmm-2.4.so.1
#16 0x000056254a640105 in  ()
#17 0x000056254a6180b4 in  ()
#18 0x00007f8ff1b7a152 in __libc_start_main () at /usr/lib/libc.so.6
#19 0x000056254a618c6a in  ()
(gdb) 

The problem seems to point to GTK. Any hint on how to debug this?

I reinstalled the relevant dependencies but no change.
System is in KDE, xorg, nvidia.

Last edited by d_fajardo (2021-02-02 08:14:24)

Offline

#2 2021-01-30 16:41:33

seth
Member
Registered: 2012-09-03
Posts: 51,017

Re: [Solved] Segmentation fault starting gmchess

coredumpctl?

Offline

#3 2021-01-30 16:55:28

d_fajardo
Member
Registered: 2017-07-28
Posts: 1,567

Re: [Solved] Segmentation fault starting gmchess

coredumpctl:

          PID: 1258567 (gmchess)
           UID: 1000 (brightchip)
           GID: 1000 (brightchip)
        Signal: 11 (SEGV)
     Timestamp: Sat 2021-01-30 14:46:58 GMT (2h 6min ago)
  Command Line: gmchess
    Executable: /usr/bin/gmchess
 Control Group: /user.slice/user-1000.slice/user@1000.service/app.slice/app-org.kde.konsole-6d2327b89dc94140a956b85f6ede1372.scope
          Unit: user@1000.service
     User Unit: app-org.kde.konsole-6d2327b89dc94140a956b85f6ede1372.scope
         Slice: user-1000.slice
     Owner UID: 1000 (brightchip)
       Boot ID: 2c6492a4c3a2455282a4083991db6200
    Machine ID: 0fb949def1e1446aadf8ee07e15b3cc1
      Hostname: taichi-z270
       Storage: /var/lib/systemd/coredump/core.gmchess.1000.2c6492a4c3a2455282a4083991db6200.1258567.1612018018000000.zst
       Message: Process 1258567 (gmchess) of user 1000 dumped core.
                
                Stack trace of thread 1258567:
                #0  0x00007f8ff2106109 _ZN3Gdk8Drawable11draw_pixbufERKN4Glib6RefPtrIKNS_2GCEEERKNS2_INS_6PixbufEEEiiiiiiNS_9RgbDitherEii (libgdkmm-2.4.so.1 + 0x2f109)
                #1  0x000056254a61dd45 n/a (gmchess + 0x1dd45)
                #2  0x000056254a61e546 n/a (gmchess + 0x1e546)
                #3  0x00007f8ff20b2c29 _ZN4Glib17SignalProxyNormal19slot0_void_callbackEP8_GObjectPv (libglibmm-2.4.so.1 + 0x61c29)
                #4  0x00007f8ff13d0052 g_closure_invoke (libgobject-2.0.so.0 + 0x13052)
                #5  0x00007f8ff13f8bd8 n/a (libgobject-2.0.so.0 + 0x3bbd8)
                #6  0x00007f8ff13ec59d g_signal_emit_valist (libgobject-2.0.so.0 + 0x2f59d)
                #7  0x00007f8ff13ecb00 g_signal_emit (libgobject-2.0.so.0 + 0x2fb00)
                #8  0x00007f8ff173c57b n/a (libgtk-x11-2.0.so.0 + 0x26c57b)
                #9  0x00007f8ff24764dc _ZN3Gtk12Widget_Class13show_callbackEP10_GtkWidget (libgtkmm-2.4.so.1 + 0x2ff4dc)
                #10 0x00007f8ff13d0052 g_closure_invoke (libgobject-2.0.so.0 + 0x13052)
                #11 0x00007f8ff13f863c n/a (libgobject-2.0.so.0 + 0x3b63c)
                #12 0x00007f8ff13ec59d g_signal_emit_valist (libgobject-2.0.so.0 + 0x2f59d)
                #13 0x00007f8ff13ecb00 g_signal_emit (libgobject-2.0.so.0 + 0x2fb00)
                #14 0x00007f8ff17335c8 gtk_widget_show (libgtk-x11-2.0.so.0 + 0x2635c8)
                #15 0x00007f8ff24763bf _ZN3Gtk12Widget_Class23show_all_vfunc_callbackEP10_GtkWidget (libgtkmm-2.4.so.1 + 0x2ff3bf)
                #16 0x000056254a640105 n/a (gmchess + 0x40105)
                #17 0x000056254a6180b4 n/a (gmchess + 0x180b4)
                #18 0x00007f8ff1b7a152 __libc_start_main (libc.so.6 + 0x28152)
                #19 0x000056254a618c6a n/a (gmchess + 0x18c6a)

EDIT: They look the same?

Last edited by d_fajardo (2021-01-30 16:57:28)

Offline

#4 2021-01-30 16:58:14

seth
Member
Registered: 2012-09-03
Posts: 51,017

Re: [Solved] Segmentation fault starting gmchess

Yeah, but we'll need the backtrace ;-)
https://wiki.archlinux.org/index.php/Co … _core_dump

Offline

#5 2021-01-30 17:09:18

d_fajardo
Member
Registered: 2017-07-28
Posts: 1,567

Re: [Solved] Segmentation fault starting gmchess

This is what I get seth running(gdb) bt , same as my first post:

GNU gdb (GDB) 10.1
Copyright (C) 2020 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-pc-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<https://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
    <http://www.gnu.org/software/gdb/documentation/>.

For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from /usr/bin/gmchess...
(No debugging symbols found in /usr/bin/gmchess)

warning: Can't open file /SYSV00000000 (deleted) during file-backed mapping note processing
[New LWP 1258567]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/usr/lib/libthread_db.so.1".
Core was generated by `gmchess'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0  0x00007f8ff2106109 in Gdk::Drawable::draw_pixbuf(Glib::RefPtr<Gdk::GC const> const&, Glib::RefPtr<Gdk::Pixbuf> const&, int, int, int, int, int, int, Gdk::RgbDither, int, int) ()
   from /usr/lib/libgdkmm-2.4.so.1
(gdb) bt
#0  0x00007f8ff2106109 in Gdk::Drawable::draw_pixbuf(Glib::RefPtr<Gdk::GC const> const&, Glib::RefPtr<Gdk::Pixbuf> const&, int, int, int, int, int, int, Gdk::RgbDither, int, int) ()
    at /usr/lib/libgdkmm-2.4.so.1
#1  0x000056254a61dd45 in  ()
#2  0x000056254a61e546 in  ()
#3  0x00007f8ff20b2c29 in Glib::SignalProxyNormal::slot0_void_callback(_GObject*, void*) () at /usr/lib/libglibmm-2.4.so.1
#4  0x00007f8ff13d0052 in g_closure_invoke () at /usr/lib/libgobject-2.0.so.0
#5  0x00007f8ff13f8bd8 in  () at /usr/lib/libgobject-2.0.so.0
#6  0x00007f8ff13ec59d in g_signal_emit_valist () at /usr/lib/libgobject-2.0.so.0
#7  0x00007f8ff13ecb00 in g_signal_emit () at /usr/lib/libgobject-2.0.so.0
#8  0x00007f8ff173c57b in  () at /usr/lib/libgtk-x11-2.0.so.0
#9  0x00007f8ff24764dc in Gtk::Widget_Class::show_callback(_GtkWidget*) () at /usr/lib/libgtkmm-2.4.so.1
#10 0x00007f8ff13d0052 in g_closure_invoke () at /usr/lib/libgobject-2.0.so.0
#11 0x00007f8ff13f863c in  () at /usr/lib/libgobject-2.0.so.0
#12 0x00007f8ff13ec59d in g_signal_emit_valist () at /usr/lib/libgobject-2.0.so.0
#13 0x00007f8ff13ecb00 in g_signal_emit () at /usr/lib/libgobject-2.0.so.0
#14 0x00007f8ff17335c8 in gtk_widget_show () at /usr/lib/libgtk-x11-2.0.so.0
#15 0x00007f8ff24763bf in Gtk::Widget_Class::show_all_vfunc_callback(_GtkWidget*) () at /usr/lib/libgtkmm-2.4.so.1
#16 0x000056254a640105 in  ()
#17 0x000056254a6180b4 in  ()
#18 0x00007f8ff1b7a152 in __libc_start_main () at /usr/lib/libc.so.6
#19 0x000056254a618c6a in  ()
(gdb) 

Could it be I don't have debugging symbols?

Offline

#6 2021-01-30 17:24:43

seth
Member
Registered: 2012-09-03
Posts: 51,017

Re: [Solved] Segmentation fault starting gmchess

I don't see you issuing a "bt" there and even w/o debug symbols, you'd still get memory positions and probably symbols from glibc.

Does gmchess yell an error when running it from konsole?

Offline

#7 2021-01-30 17:34:55

d_fajardo
Member
Registered: 2017-07-28
Posts: 1,567

Re: [Solved] Segmentation fault starting gmchess

It simply outputs:

Segmentation fault (core dumped).

But come to it, it was flagging me this message before:

Unable to locate theme engine in module_path: "adwaita"
Segmentation fault (core dumped).

I installed gnome-themes-extra from AUR and the first part of message is gone.

Could it have something to do with this module_path? Something still missing?

Last edited by d_fajardo (2021-01-30 17:36:20)

Offline

#8 2021-01-30 21:51:48

seth
Member
Registered: 2012-09-03
Posts: 51,017

Re: [Solved] Segmentation fault starting gmchess

gdb gmchess 2>&1 | tee ~/gmchess.gdb
(gdb) run
# wait for crash
(gdb) bt

Post the resulting ~/gmchess.gdb (should be a copy of what you saw on screen)

Offline

#9 2021-01-31 07:45:22

d_fajardo
Member
Registered: 2017-07-28
Posts: 1,567

Re: [Solved] Segmentation fault starting gmchess

This is the output of ~/gmchess.gdb:

GNU gdb (GDB) 10.1
Copyright (C) 2020 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-pc-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<https://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
    <http://www.gnu.org/software/gdb/documentation/>.

For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from gmchess...
(No debugging symbols found in gmchess)
[?2004h(gdb) run
[?2004l
Starting program: /usr/bin/gmchess 
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/usr/lib/libthread_db.so.1".

Program received signal SIGSEGV, Segmentation fault.
0x00007ffff7ad3109 in Gdk::Drawable::draw_pixbuf(Glib::RefPtr<Gdk::GC const> const&, Glib::RefPtr<Gdk::Pixbuf> const&, int, int, int, int, int, int, Gdk::RgbDither, int, int) ()
   from /usr/lib/libgdkmm-2.4.so.1
[?2004h[?2004l
[?2004h(gdb) bt
[?2004l
#0  0x00007ffff7ad3109 in Gdk::Drawable::draw_pixbuf(Glib::RefPtr<Gdk::GC const> const&, Glib::RefPtr<Gdk::Pixbuf> const&, int, int, int, int, int, int, Gdk::RgbDither, int, int) ()
    at /usr/lib/libgdkmm-2.4.so.1
#1  0x000055555541dd45 in  ()
#2  0x000055555541e546 in  ()
#3  0x00007ffff7a7fc29 in Glib::SignalProxyNormal::slot0_void_callback(_GObject*, void*) () at /usr/lib/libglibmm-2.4.so.1
#4  0x00007ffff6d9d052 in g_closure_invoke () at /usr/lib/libgobject-2.0.so.0
#5  0x00007ffff6dc5bd8 in  () at /usr/lib/libgobject-2.0.so.0
#6  0x00007ffff6db959d in g_signal_emit_valist () at /usr/lib/libgobject-2.0.so.0
#7  0x00007ffff6db9b00 in g_signal_emit () at /usr/lib/libgobject-2.0.so.0
#8  0x00007ffff710957b in  () at /usr/lib/libgtk-x11-2.0.so.0
#9  0x00007ffff7e434dc in Gtk::Widget_Class::show_callback(_GtkWidget*) () at /usr/lib/libgtkmm-2.4.so.1
#10 0x00007ffff6d9d052 in g_closure_invoke () at /usr/lib/libgobject-2.0.so.0
#11 0x00007ffff6dc563c in  () at /usr/lib/libgobject-2.0.so.0
#12 0x00007ffff6db959d in g_signal_emit_valist () at /usr/lib/libgobject-2.0.so.0
#13 0x00007ffff6db9b00 in g_signal_emit () at /usr/lib/libgobject-2.0.so.0
#14 0x00007ffff71005c8 in gtk_widget_show () at /usr/lib/libgtk-x11-2.0.so.0
#15 0x00007ffff7e433bf in Gtk::Widget_Class::show_all_vfunc_callback(_GtkWidget*) () at /usr/lib/libgtkmm-2.4.so.1
#16 0x0000555555440105 in  ()
#17 0x00005555554180b4 in  ()
#18 0x00007ffff7547152 in __libc_start_main () at /usr/lib/libc.so.6
#19 0x0000555555418c6a in  ()
[?2004h(gdb) 

It looks the same as what I already posted? Do I have anything amiss in my system?
It could be the gmchess package itself as it hasn't been updated since 2018. I have tried both gmchess and gmchess-bin with same result.
I will investigate the package further.

EDIT: It looks like the debian source is not maintained anymore.

Last edited by d_fajardo (2021-01-31 07:48:05)

Offline

#10 2021-01-31 08:55:31

seth
Member
Registered: 2012-09-03
Posts: 51,017

Re: [Solved] Segmentation fault starting gmchess

It looks the same as what I already posted?

This is the desired backtrace:

Program received signal SIGSEGV, Segmentation fault.
0x00007ffff7ad3109 in Gdk::Drawable::draw_pixbuf(Glib::RefPtr<Gdk::GC const> const&, Glib::RefPtr<Gdk::Pixbuf> const&, int, int, int, int, int, int, Gdk::RgbDither, int, int) ()
   from /usr/lib/libgdkmm-2.4.so.1
[?2004h[?2004l
[?2004h(gdb) bt
[?2004l
#0  0x00007ffff7ad3109 in Gdk::Drawable::draw_pixbuf(Glib::RefPtr<Gdk::GC const> const&, Glib::RefPtr<Gdk::Pixbuf> const&, int, int, int, int, int, int, Gdk::RgbDither, int, int) ()
    at /usr/lib/libgdkmm-2.4.so.1
#1  0x000055555541dd45 in  ()
#2  0x000055555541e546 in  ()
#3  0x00007ffff7a7fc29 in Glib::SignalProxyNormal::slot0_void_callback(_GObject*, void*) () at /usr/lib/libglibmm-2.4.so.1
#4  0x00007ffff6d9d052 in g_closure_invoke () at /usr/lib/libgobject-2.0.so.0
#5  0x00007ffff6dc5bd8 in  () at /usr/lib/libgobject-2.0.so.0
#6  0x00007ffff6db959d in g_signal_emit_valist () at /usr/lib/libgobject-2.0.so.0
#7  0x00007ffff6db9b00 in g_signal_emit () at /usr/lib/libgobject-2.0.so.0
#8  0x00007ffff710957b in  () at /usr/lib/libgtk-x11-2.0.so.0
#9  0x00007ffff7e434dc in Gtk::Widget_Class::show_callback(_GtkWidget*) () at /usr/lib/libgtkmm-2.4.so.1
#10 0x00007ffff6d9d052 in g_closure_invoke () at /usr/lib/libgobject-2.0.so.0
#11 0x00007ffff6dc563c in  () at /usr/lib/libgobject-2.0.so.0
#12 0x00007ffff6db959d in g_signal_emit_valist () at /usr/lib/libgobject-2.0.so.0
#13 0x00007ffff6db9b00 in g_signal_emit () at /usr/lib/libgobject-2.0.so.0
#14 0x00007ffff71005c8 in gtk_widget_show () at /usr/lib/libgtk-x11-2.0.so.0
#15 0x00007ffff7e433bf in Gtk::Widget_Class::show_all_vfunc_callback(_GtkWidget*) () at /usr/lib/libgtkmm-2.4.so.1
#16 0x0000555555440105 in  ()
#17 0x00005555554180b4 in  ()
#18 0x00007ffff7547152 in __libc_start_main () at /usr/lib/libc.so.6
#19 0x0000555555418c6a in  ()

Unfortunately it's in the signal handler what doesn't tell a whole lot either sad

Is this gmchecss or gmchess-bin? (You link in the OP suggests the latter - in that case: bad idea, compile it from source. GTKs ABI stability is more on the theoretical side …)

Offline

#11 2021-01-31 19:44:16

d_fajardo
Member
Registered: 2017-07-28
Posts: 1,567

Re: [Solved] Segmentation fault starting gmchess

This is gmchess-bin but I've tried gmchess as well. I'l have a look at compiling the source.

Offline

#12 2021-01-31 19:52:07

seth
Member
Registered: 2012-09-03
Posts: 51,017

Re: [Solved] Segmentation fault starting gmchess

Afaics the gmchess package compiles from soruce and should hopefully provide a different backtrace.
You could also build it debug enabled for a more elaborate backtrace.
https://wiki.archlinux.org/index.php/De … n_settings

Offline

#13 2021-02-01 13:28:45

d_fajardo
Member
Registered: 2017-07-28
Posts: 1,567

Re: [Solved] Segmentation fault starting gmchess

Does this new backtrace with debugging symbols any better?

GNU gdb (GDB) 10.1
Copyright (C) 2020 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-pc-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<https://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
    <http://www.gnu.org/software/gdb/documentation/>.

For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from /usr/bin/gmchess...

warning: Can't open file /SYSV00000000 (deleted) during file-backed mapping note processing
[New LWP 544629]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/usr/lib/libthread_db.so.1".
Core was generated by `gmchess'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0  0x00007f0d839ad109 in Gdk::Drawable::draw_pixbuf(Glib::RefPtr<Gdk::GC const> const&, Glib::RefPtr<Gdk::Pixbuf> const&, int, int, int, int, int, int, Gdk::RgbDither, int, int) ()
   from /usr/lib/libgdkmm-2.4.so.1
(gdb) bt
#0  0x00007f0d839ad109 in Gdk::Drawable::draw_pixbuf(Glib::RefPtr<Gdk::GC const> const&, Glib::RefPtr<Gdk::Pixbuf> const&, int, int, int, int, int, int, Gdk::RgbDither, int, int) ()
    at /usr/lib/libgdkmm-2.4.so.1
#1  0x000055d8b1a264f9 in Board::draw_bg() (this=0x55d8b353ac00) at Board.cc:440
#2  0x000055d8b1a26bff in Board::redraw() (this=0x55d8b353ac00) at Board.cc:320
#3  0x00007f0d83959c29 in Glib::SignalProxyNormal::slot0_void_callback(_GObject*, void*) () at /usr/lib/libglibmm-2.4.so.1
#4  0x00007f0d82c77052 in g_closure_invoke () at /usr/lib/libgobject-2.0.so.0
#5  0x00007f0d82c9fbd8 in  () at /usr/lib/libgobject-2.0.so.0
#6  0x00007f0d82c9359d in g_signal_emit_valist () at /usr/lib/libgobject-2.0.so.0
#7  0x00007f0d82c93b00 in g_signal_emit () at /usr/lib/libgobject-2.0.so.0
#8  0x00007f0d82fe357b in  () at /usr/lib/libgtk-x11-2.0.so.0
#9  0x00007f0d83d1d4dc in Gtk::Widget_Class::show_callback(_GtkWidget*) () at /usr/lib/libgtkmm-2.4.so.1
#10 0x00007f0d82c77052 in g_closure_invoke () at /usr/lib/libgobject-2.0.so.0
#11 0x00007f0d82c9f63c in  () at /usr/lib/libgobject-2.0.so.0
#12 0x00007f0d82c9359d in g_signal_emit_valist () at /usr/lib/libgobject-2.0.so.0
#13 0x00007f0d82c93b00 in g_signal_emit () at /usr/lib/libgobject-2.0.so.0
#14 0x00007f0d82fda5c8 in gtk_widget_show () at /usr/lib/libgtk-x11-2.0.so.0
#15 0x00007f0d83d1d3bf in Gtk::Widget_Class::show_all_vfunc_callback(_GtkWidget*) () at /usr/lib/libgtkmm-2.4.so.1
#16 0x000055d8b1a4b828 in MainWindow::MainWindow() (this=0x7fffcf2d5eb0, __in_chrg=<optimized out>, __vtt_parm=<optimized out>) at MainWindow.cc:165
#17 0x000055d8b1a1fde2 in main(int, char**) (argc=<optimized out>, argv=<optimized out>) at main.cc:87
(gdb) 

Offline

#14 2021-02-01 14:21:32

seth
Member
Registered: 2012-09-03
Posts: 51,017

Re: [Solved] Segmentation fault starting gmchess

Crashes at

ui_pixmap->draw_pixbuf(get_style()->get_black_gc(), bg_image,
					0, 0, i * bg_width, j * bg_height, bg_width, bg_height, 
					Gdk::RGB_DITHER_NONE, 0, 0);

from the constructor - there's a good chance this relates to your adwaita style issue.
Can you launch some other gtk2 client like https://archlinux.org/packages/communit … 4/gcolor2/ ?

Offline

#15 2021-02-01 20:28:11

d_fajardo
Member
Registered: 2017-07-28
Posts: 1,567

Re: [Solved] Segmentation fault starting gmchess

I don't have issues with other gtk2 apps. I removed the original 'adwaita' I installed and now I just get the original warning back with the seg fault:

(gmchess:2116578): Gtk-WARNING **: 19:49:37.643: Unable to locate theme engine in module_path: "adwaita",
Segmentation fault (core dumped)

Offline

#16 2021-02-01 23:37:54

seth
Member
Registered: 2012-09-03
Posts: 51,017

Re: [Solved] Segmentation fault starting gmchess

sudo pacman -U gmchess-0.29.6-4-x86_64.pkg.tar.zst
…
Please note: If this game segfaults on your computer, consider installing gmchess-bin instead.

lol - very encouraging smile

So one problem is that Board::on_configure_event is called before the window is mapped, causing Gdk::Pixmap::create to crash.
And the return value for the Board::on_configure_event matters - not returning stuff causes a stack smashing…

--- Board.bak	2021-02-02 00:36:17.106336858 +0100
+++ Board.cc	2021-02-02 00:37:04.403155047 +0100
@@ -299,12 +299,17 @@ void Board::on_map()
 
 bool Board::on_configure_event(GdkEventConfigure* ev)
 {
-	//if(ui_pixmap)
-	//	return true;
+    if (!get_mapped())
+        return false;
+	if (ui_pixmap) {
+        int w,h;
+        ui_pixmap->get_size(w,h);
+        if (get_width() == w || get_height() == h)
+            return false;
+    }
 	ui_pixmap = Gdk::Pixmap::create(this->get_window(),get_width(),get_height());
-
 	redraw();
-
+    return false;
 }
 bool Board::on_expose_event(GdkEventExpose* ev)
 {
@@ -317,6 +322,8 @@ bool Board::on_expose_event(GdkEventExpo
 }
 void Board::redraw()
 {
+    if (!ui_pixmap)
+        return;
 	draw_bg();
 	draw_board();
 

Offline

#17 2021-02-02 08:14:02

d_fajardo
Member
Registered: 2017-07-28
Posts: 1,567

Re: [Solved] Segmentation fault starting gmchess

seth you're a star!
Thanks for the patch it works now.
I am crap at this game but learned how to play it on my visit to China. Engine is intimidating though because it responds right away.

EDIT: Notified the maintainer as well of the patch.

Last edited by d_fajardo (2021-02-02 08:57:03)

Offline

#18 2021-02-02 11:08:22

mrxx
Member
Registered: 2011-12-24
Posts: 22

Re: [Solved] Segmentation fault starting gmchess

Thanks a lot, Seth and d_fajardo!

I've updated the package.

Offline

Board footer

Powered by FluxBB