I foolishly tested unity8's keymap switching with the keymap "zh" (I should have used "cn").
But I noticed that libmirclient crashed when I switched to "zh". While this isn't a supported use case, we shouldn't crash.
Here's a non-debugful stack trace:
#0 0xb61379a6 in ?? () from /lib/arm-linux-gnueabihf/libc.so.6
(gdb) bt
#0 0xb61379a6 in ?? () from /lib/arm-linux-gnueabihf/libc.so.6
#1 0xb614562e in raise () from /lib/arm-linux-gnueabihf/libc.so.6
#2 0xb6146332 in abort () from /lib/arm-linux-gnueabihf/libc.so.6
#3 0xb6283120 in __gnu_cxx::__verbose_terminate_handler() ()
from /usr/lib/arm-linux-gnueabihf/libstdc++.so.6
#4 0xb6281950 in ?? () from /usr/lib/arm-linux-gnueabihf/libstdc++.so.6
#5 0xb62819a6 in std::terminate() ()
from /usr/lib/arm-linux-gnueabihf/libstdc++.so.6
#6 0xb6281bc6 in __cxa_throw ()
from /usr/lib/arm-linux-gnueabihf/libstdc++.so.6
#7 0xb3d726ec in ?? () from /usr/lib/arm-linux-gnueabihf/libmirclient.so.9
#8 0xb3d857f2 in mir::events::make_event(mir::IntWrapper<mir::frontend::detail::SessionsSurfaceIdTag, int> const&, long long, std::string const&, std::string const&, std::string const&, std::string const&) ()
from /usr/lib/arm-linux-gnueabihf/libmirclient.so.9
#9 0xb3e3e5e2 in ?? () from /usr/lib/arm-linux-gnueabihf/libmirserver.so.38
#10 0xb3e24d1e in ?? () from /usr/lib/arm-linux-gnueabihf/libmirserver.so.38
#11 0xb3e2aeb0 in ?? () from /usr/lib/arm-linux-gnueabihf/libmirserver.so.38
#12 0xb3e26870 in ?? () from /usr/lib/arm-linux-gnueabihf/libmirserver.so.38
#13 0xaa6476ce in qtmir::MirSurface::setKeymap(QString const&, QString const&)
I foolishly tested unity8's keymap switching with the keymap "zh" (I should have used "cn").
But I noticed that libmirclient crashed when I switched to "zh". While this isn't a supported use case, we shouldn't crash.
Here's a non-debugful stack trace:
#0 0xb61379a6 in ?? () from /lib/arm- linux-gnueabihf /libc.so. 6 linux-gnueabihf /libc.so. 6 linux-gnueabihf /libc.so. 6 linux-gnueabihf /libc.so. 6 :__verbose_ terminate_ handler( ) () arm-linux- gnueabihf/ libstdc+ +.so.6 arm-linux- gnueabihf/ libstdc+ +.so.6 arm-linux- gnueabihf/ libstdc+ +.so.6 arm-linux- gnueabihf/ libstdc+ +.so.6 arm-linux- gnueabihf/ libmirclient. so.9 :make_event( mir::IntWrapper <mir::frontend: :detail: :SessionsSurfac eIdTag, int> const&, long long, std::string const&, std::string const&, std::string const&, std::string const&) () arm-linux- gnueabihf/ libmirclient. so.9 arm-linux- gnueabihf/ libmirserver. so.38 arm-linux- gnueabihf/ libmirserver. so.38 arm-linux- gnueabihf/ libmirserver. so.38 arm-linux- gnueabihf/ libmirserver. so.38 MirSurface: :setKeymap( QString const&, QString const&)
(gdb) bt
#0 0xb61379a6 in ?? () from /lib/arm-
#1 0xb614562e in raise () from /lib/arm-
#2 0xb6146332 in abort () from /lib/arm-
#3 0xb6283120 in __gnu_cxx:
from /usr/lib/
#4 0xb6281950 in ?? () from /usr/lib/
#5 0xb62819a6 in std::terminate() ()
from /usr/lib/
#6 0xb6281bc6 in __cxa_throw ()
from /usr/lib/
#7 0xb3d726ec in ?? () from /usr/lib/
#8 0xb3d857f2 in mir::events:
from /usr/lib/
#9 0xb3e3e5e2 in ?? () from /usr/lib/
#10 0xb3e24d1e in ?? () from /usr/lib/
#11 0xb3e2aeb0 in ?? () from /usr/lib/
#12 0xb3e26870 in ?? () from /usr/lib/
#13 0xaa6476ce in qtmir::