The problem seems to be that we are getting a vsync callback after the HWCCommonDevice class has been destroyed (verified with debug prints in ~HWCCommonDevice() and vsync_hook()). Not sure how to solve this (can we unregister the hooks on HWCCommonDevice destruction, does vsync_hook need to handle a destroyed "self"?), so leaving it to our Android resident experts.
The best backtrace I could get is:
Thread 2 (Thread 0xb61563e0 (LWP 24473)):
#0 0xb69c88e6 in ?? () from /lib/arm-linux-gnueabihf/libc.so.6
#1 0xb69d705e in raise () from /lib/arm-linux-gnueabihf/libc.so.6
#2 0xb69d7d4e in abort () from /lib/arm-linux-gnueabihf/libc.so.6
#3 0xb6b89184 in __gnu_cxx::__verbose_terminate_handler() ()
from /usr/lib/arm-linux-gnueabihf/libstdc++.so.6
#4 0xb6b879b4 in ?? () from /usr/lib/arm-linux-gnueabihf/libstdc++.so.6
#5 0xb6b87a0a in std::terminate() () from /usr/lib/arm-linux-gnueabihf/libstdc++.so.6
#6 0xb6b88332 in __cxa_pure_virtual () from /usr/lib/arm-linux-gnueabihf/libstdc++.so.6
#7 0xb63fac0a in mir::graphics::android::HWCCommonDevice::notify_vsync (this=0xcc660)
at /storage/work/mir/src/platform/graphics/android/hwc_common_device.cpp:85
#8 0xb63faa16 in (anonymous namespace)::vsync_hook (procs=0xcc66c)
at /storage/work/mir/src/platform/graphics/android/hwc_common_device.cpp:38
#9 0xb6164bf8 in ?? ()
The problem seems to be that we are getting a vsync callback after the HWCCommonDevice class has been destroyed (verified with debug prints in ~HWCCommonDevice() and vsync_hook()). Not sure how to solve this (can we unregister the hooks on HWCCommonDevice destruction, does vsync_hook need to handle a destroyed "self"?), so leaving it to our Android resident experts.
The best backtrace I could get is:
Thread 2 (Thread 0xb61563e0 (LWP 24473)): 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 :android: :HWCCommonDevic e::notify_ vsync (this=0xcc660) work/mir/ src/platform/ graphics/ android/ hwc_common_ device. cpp:85 ::vsync_ hook (procs=0xcc66c) work/mir/ src/platform/ graphics/ android/ hwc_common_ device. cpp:38
#0 0xb69c88e6 in ?? () from /lib/arm-
#1 0xb69d705e in raise () from /lib/arm-
#2 0xb69d7d4e in abort () from /lib/arm-
#3 0xb6b89184 in __gnu_cxx:
from /usr/lib/
#4 0xb6b879b4 in ?? () from /usr/lib/
#5 0xb6b87a0a in std::terminate() () from /usr/lib/
#6 0xb6b88332 in __cxa_pure_virtual () from /usr/lib/
#7 0xb63fac0a in mir::graphics:
at /storage/
#8 0xb63faa16 in (anonymous namespace)
at /storage/
#9 0xb6164bf8 in ?? ()