$ bsnes-hd
(hiro:5153): Gdk-CRITICAL **: 10:20:54.795: gdk_x11_window_get_xid: assertion 'GDK_IS_X11_WINDOW (window)' failed
X Error of failed request: BadWindow (invalid Window parameter)
Major opcode of failed request: 20 (X_GetProperty)
Resource id in failed request: 0x0
Serial number of failed request: 8
Current serial number in output stream: 8
$ gdb bsnes-hd
Reading symbols from bsnes-hd...
Reading symbols from /usr/lib/debug/usr/bin/bsnes-hd.debug...
(No debugging symbols found in /usr/lib/debug/usr/bin/bsnes-hd.debug)
(ins)(gdb) b gdk_x11_window_get_xid
Breakpoint 1 at 0xd6760
(ins)(gdb) r
Starting program: /usr/bin/bsnes-hd
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/usr/lib64/libthread_db.so.1".
[Detaching after fork from child process 5596]
[New Thread 0x7fffe35ff6c0 (LWP 5597)]
[New Thread 0x7fffe2dfe6c0 (LWP 5598)]
[New Thread 0x7fffe25fd6c0 (LWP 5599)]
[New Thread 0x7fffe1dfc6c0 (LWP 5600)]
[New Thread 0x7fffe15fb6c0 (LWP 5601)]
[New Thread 0x7fffcbfff6c0 (LWP 5602)]
[Detaching after fork from child process 5603]
[Detaching after fork from child process 5604]
Can't locate Net/DBus.pm in @INC (you may need to install the Net::DBus module) (@INC entries checked: /etc/perl /usr/local/lib64/perl5/5.42/x86_64-linux /usr/local/lib64/perl5/5.42 /usr/lib64/perl5/vendor_perl/5.42/x86_64-linux /usr/lib64/perl5/vendor_perl/5.42 /usr/lib64/perl5/5.42/x86_64-linux /usr/lib64/perl5/5.42 /usr/lib64/perl5/vendor_perl/5.40 /usr/lib64/perl5/vendor_perl/5.38) at -e line 6.
BEGIN failed--compilation aborted at -e line 6.
Thread 1 "bsnes-hd" hit Breakpoint 1, gdk_x11_window_get_xid (window=0x555558c79360 [GdkWaylandWindow]) at ../gtk-3.24.51/gdk/x11/gdkwindow-x11.c:5671
warning: 5671 ../gtk-3.24.51/gdk/x11/gdkwindow-x11.c: No such file or directory
(ins)(gdb) bt
#0 gdk_x11_window_get_xid (window=0x555558c79360 [GdkWaylandWindow]) at ../gtk-3.24.51/gdk/x11/gdkwindow-x11.c:5671
#1 0x0000555555674ddc in hiro::pWindow::_synchronizeState() ()
#2 0x0000555555674fe8 in hiro::Window_stateEvent(_GtkWidget*, _GdkEvent*, hiro::pWindow*) ()
#8 0x00007ffff70d615b in <emit signal 'window-state-event' on instance 0x5555587c46b0 [GtkWindow]> (instance=instance@entry=0x5555587c46b0, signal_id=<optimized out>, detail=detail@entry=0)
at ../glib-2.84.4/gobject/gsignal.c:3597
#3 0x00007ffff768a08c in _gtk_marshal_BOOLEAN__BOXED
(closure=0x55555884e740, return_value=0x7fffffffa790, param_values=0x7fffffffa840, marshal_data=<optimized out>, invocation_hint=<optimized out>, n_param_values=<optimized out>) at gtk/gtkmarshalers.c:84
#4 0x00007ffff70b65a0 in g_closure_invoke (closure=0x55555884e740, return_value=0x7fffffffa790, n_param_values=2, param_values=0x7fffffffa840, invocation_hint=0x7fffffffa770)
at ../glib-2.84.4/gobject/gclosure.c:835
#5 0x00007ffff70d4091 in signal_emit_unlocked_R
(node=node@entry=0x7fffffffa960, detail=detail@entry=0, instance=instance@entry=0x5555587c46b0, emission_return=emission_return@entry=0x7fffffffa9e0, instance_and_params=instance_and_params@entry=0x7fffffffa840) at ../glib-2.84.4/gobject/gsignal.c:3902
#6 0x00007ffff70d57e7 in signal_emit_valist_unlocked (instance=instance@entry=0x5555587c46b0, signal_id=signal_id@entry=114, detail=detail@entry=0, var_args=var_args@entry=0x7fffffffaab0)
at ../glib-2.84.4/gobject/gsignal.c:3547
#7 0x00007ffff70d6098 in g_signal_emit_valist (instance=0x5555587c46b0, signal_id=114, detail=0, var_args=var_args@entry=0x7fffffffaab0) at ../glib-2.84.4/gobject/gsignal.c:3277
#9 0x00007ffff7942934 in gtk_widget_event_internal.part.0.lto_priv.0 (widget=0x5555587c46b0 [GtkWindow], event=0x555558d50d20) at ../gtk-3.24.51/gtk/gtkwidget.c:7827
#10 0x00007ffff77e4d00 in gtk_main_do_event (event=<optimized out>) at ../gtk-3.24.51/gtk/gtkmain.c:1864
#11 gtk_main_do_event (event=<optimized out>) at ../gtk-3.24.51/gtk/gtkmain.c:1694
#12 0x00007ffff7d71427 in _gdk_event_emit (event=0x555558d50d20) at ../gtk-3.24.51/gdk/gdkevents.c:73
#13 _gdk_event_emit (event=0x555558d50d20) at ../gtk-3.24.51/gdk/gdkevents.c:67
#14 0x00007ffff7da58b6 in gdk_event_source_dispatch (base=<optimized out>, callback=<optimized out>, data=<optimized out>) at ../gtk-3.24.51/gdk/wayland/gdkeventsource.c:124
#15 0x00007ffff6fafdf2 in g_main_dispatch (context=0x5555586dd960) at ../glib-2.84.4/glib/gmain.c:3398
#16 0x00007ffff6fb0d07 in g_main_context_dispatch_unlocked (context=0x5555586dd960) at ../glib-2.84.4/glib/gmain.c:4249
#17 g_main_context_iterate_unlocked (context=context@entry=0x5555586dd960, block=block@entry=0, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib-2.84.4/glib/gmain.c:4314
#18 0x00007ffff6fb0e50 in g_main_context_iteration (context=0x5555586dd960, context@entry=0x0, may_block=may_block@entry=0) at ../glib-2.84.4/glib/gmain.c:4379
#19 0x00007ffff77df885 in gtk_main_iteration_do (blocking=0) at ../gtk-3.24.51/gtk/gtkmain.c:1460
#20 0x0000555555676de4 in hiro::pApplication::processEvents() ()
#21 0x00005555556ad355 in hiro::pTableView::setGeometry(hiro::Geometry) ()
#22 0x00005555556608b1 in hiro::mSizable::setGeometry(hiro::Geometry) ()
#23 0x00005555556c0130 in hiro::mHorizontalLayout::setGeometry(hiro::Geometry) ()
#24 0x00005555556c09bc in hiro::mVerticalLayout::setGeometry(hiro::Geometry) ()
#25 0x000055555568b50b in hiro::mVerticalLayout::setPadding(hiro::Geometry) ()
#26 0x000055555597eb01 in SettingsWindow::create() ()
#27 0x00005555559012b3 in Program::create() ()
#28 0x000055555565d594 in nall::main(nall::Arguments) ()
#29 0x000055555565e655 in nall::main(int, char**) ()
#30 0x000055555565ea5d in main ()
Workaround is to set
GDK_BACKEND=x11.Can Wayland support be added?
The crash is here:
https://github.com/DerKoun/bsnes-hd/blob/master/hiro/gtk/window.cpp#L663
The reason is because the
windowvariable is of typeGdkWaylandWindow.Trace: