macOS Monterey/Ventura ARM chip: Quartz display/window related crash
Steps to reproduce
The crash is a bit tricky to reproduce, but let me know and I'll give you detailed instructions. However, it involves installing https://gitlab.com/cppit/jucipp.
I do not know how to reproduce this crash using gtk3-demo.
Version information
- OS: MacOS Monterey and Ventura (tested on both)
- Chip: Apple M1 and M2 (tested on both)
- Gtk+3, works fine: 3.24.34
- Gtk+3, crashes: 3.24.35 and 3.24.36
- Package system: Homebrew
Warnings
There are no warnings from the regular (no debug) gtk libraries.
Backtrace
Backtrace using the gtk libraries with debug symbols enabled:
Process 40178 stopped
* thread #1, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x18)
frame #0: 0x000000010363a55c libgdk-3.0.dylib`gdk_quartz_display_frame_cb(data=<unavailable>) at gdkdisplay-quartz.c:153:35 [opt]
150 for (; iter != NULL; iter = iter->next)
151 {
152 GdkWindow *window = iter->data;
-> 153 GdkWindowImplQuartz *impl = GDK_WINDOW_IMPL_QUARTZ (window->impl);
154 GdkFrameClock *frame_clock = gdk_window_get_frame_clock (window);
155 GdkFrameTimings *timings;
156
Target 0: (juci) stopped.
warning: libgdk-3.0.dylib was compiled with optimization - stepping may behave oddly; variables may not be available.
(lldb) bt
* thread #1, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x18)
* frame #0: 0x000000010363a55c libgdk-3.0.dylib`gdk_quartz_display_frame_cb(data=<unavailable>) at gdkdisplay-quartz.c:153:35 [opt]
frame #1: 0x000000010363b508 libgdk-3.0.dylib`gdk_display_link_source_dispatch(source=<unavailable>, callback=<unavailable>, user_data=<unavailable>) at gdkdisplaylinksource.c:66:11 [opt]
frame #2: 0x0000000104501f20 libglib-2.0.0.dylib`g_main_context_dispatch + 240
frame #3: 0x0000000104502240 libglib-2.0.0.dylib`g_main_context_iterate + 436
frame #4: 0x00000001045022a8 libglib-2.0.0.dylib`g_main_context_iteration + 60
frame #5: 0x0000000104063480 libgio-2.0.0.dylib`g_application_run + 464