These lines are suspicious to my eye:
stat64("/build/supertux/parts/supertux/build/data/credits.stxt", 0xbef40608) = -1 ENOENT (No such file or directory)
...
access("/snap/supertux/x1/usr/share/games/supertux2", W_OK) = -1 EACCES (Permission denied)
openat(AT_FDCWD, "/root/snap/supertux/x1/.local/share/supertux2/config", O_RDONLY) = -1 ENOENT (No such file or directory)
lstat64("/root/snap/supertux/x1/.local/share/supertux2/config", 0xbef401b8) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/snap/supertux/x1/usr/share/games/supertux2/config", O_RDONLY) = -1 ENOENT (No such file or directory)
lstat64("/snap/supertux/x1/usr/share/games/supertux2/config", 0xbef401b8) = -1 ENOENT (No such file or directory)
Specifically that last one $SNAP/usr/share/games/supertux2/config
being not found… and $SNAP/usr/share/games/supertux2
giving access denied.
The SDL2 game controller API has an event type SDL_CONTROLLERDEVICEADDED
to detect new devices and then uses the ID reported in the event to register/open the device. Only after that initialization procedure input events are read from /dev/input/js0
. What I think it’s happening here is that /dev/input/js0
is available and readable, but SDL is not being informed that a game controller is plugged (so, for SDL, there’s no game controller connected and no input is read). Does that make sense to you?
1 Like
So to test this possibility I wrote a small SDL app that reads the state of the controller buttons and straced it. On a classic system it opens /dev/input/event22
and reads data when input is generated on the controller, but on core it doesn’t open anything, so I think SDL is really not being informed about the presence of a game controller device.
1 Like
In other news, gdbserver has landed in the edge channel of the core18 snap, so to debug the crash, you can try:
snap refresh core18 --edge # wait for reboot afterwards
snap run --experimental-gdbserver supertux
and then follow the instructions to have a working gdb session on Ubuntu Core to see where it is segfaulting