Crash in OS X when filtering files in GTK navigator
I have the following crash in OS X when trying to filter any file in the GTK dialog. I tried the same in Linux but there it's working ok. To trigger this, simply open a dialog using "Open File", set focus on the current folder and start typing something filter by those words. This is what happens:
Process 48633 stopped
* thread #1: tid = 0x314cd, 0x00000001010b11d6 libgio-2.0.0.dylib`g_file_hash + 26, queue = 'com.apple.main-thread', activity = 'sendAction:', 2 messages, stop reason = EXC_BAD_ACCESS (code=EXC_I386_GPFLT)
frame #0: 0x00000001010b11d6 libgio-2.0.0.dylib`g_file_hash + 26
libgio-2.0.0.dylib`g_file_hash:
-> 0x1010b11d6 <+26>: movq (%rbx), %r15
0x1010b11d9 <+29>: testq %r15, %r15
0x1010b11dc <+32>: je 0x1010b11e3 ; <+39>
0x1010b11de <+34>: cmpq %r14, (%r15)
(lldb) bt
* thread #1: tid = 0x314cd, 0x00000001010b11d6 libgio-2.0.0.dylib`g_file_hash + 26, queue = 'com.apple.main-thread', activity = 'sendAction:', 2 messages, stop reason = EXC_BAD_ACCESS (code=EXC_I386_GPFLT)
* frame #0: 0x00000001010b11d6 libgio-2.0.0.dylib`g_file_hash + 26
frame #1: 0x0000000101382121 libglib-2.0.0.dylib`g_hash_table_contains + 52
frame #2: 0x00000001009bc99e libgtk-3.0.dylib`hits_added + 44
frame #3: 0x0000000101327ae1 libgobject-2.0.0.dylib`g_cclosure_marshal_VOID__POINTERv + 130
frame #4: 0x0000000101324adf libgobject-2.0.0.dylib`_g_closure_invoke_va + 279
frame #5: 0x0000000101339fb0 libgobject-2.0.0.dylib`g_signal_emit_valist + 1309
frame #6: 0x000000010133a93e libgobject-2.0.0.dylib`g_signal_emit + 134
frame #7: 0x0000000100c23bc2 libgtk-3.0.dylib`-[ResultReceiver submitHits:] + 206
frame #8: 0x00007fff8d7dcbbc CoreFoundation`__CFNOTIFICATIONCENTER_IS_CALLING_OUT_TO_AN_OBSERVER__ + 12
frame #9: 0x00007fff8d7dcb4f CoreFoundation`___CFXRegistrationPost_block_invoke + 63
frame #10: 0x00007fff8d7dcac7 CoreFoundation`_CFXRegistrationPost + 407
frame #11: 0x00007fff8d7dc832 CoreFoundation`___CFXNotificationPost_block_invoke + 50
frame #12: 0x00007fff8d7995e2 CoreFoundation`-[_CFXNotificationRegistrar find:object:observer:enumerator:] + 1922
frame #13: 0x00007fff8d798835 CoreFoundation`_CFXNotificationPost + 693
frame #14: 0x00007fff92cbc17a Foundation`-[NSNotificationCenter postNotificationName:object:userInfo:] + 66
frame #15: 0x00007fff92d5d883 Foundation`-[NSMetadataQuery _postNotificationName:userInfo:] + 287
frame #16: 0x00007fff8d7dcbbc CoreFoundation`__CFNOTIFICATIONCENTER_IS_CALLING_OUT_TO_AN_OBSERVER__ + 12
frame #17: 0x00007fff8d7dcb4f CoreFoundation`___CFXRegistrationPost_block_invoke + 63
frame #18: 0x00007fff8d7dcac7 CoreFoundation`_CFXRegistrationPost + 407
frame #19: 0x00007fff8d7dc832 CoreFoundation`___CFXNotificationPost_block_invoke + 50
frame #20: 0x00007fff8d7995e2 CoreFoundation`-[_CFXNotificationRegistrar find:object:observer:enumerator:] + 1922
frame #21: 0x00007fff8d798835 CoreFoundation`_CFXNotificationPost + 693
frame #22: 0x00007fff8d832b51 CoreFoundation`CFNotificationCenterPostNotificationWithOptions + 113
frame #23: 0x00007fff9145fd7c Metadata`___pushNotification_block_invoke + 152
frame #24: 0x00007fff8d7e64ac CoreFoundation`__CFRUNLOOP_IS_CALLING_OUT_TO_A_BLOCK__ + 12
frame #25: 0x00007fff8d7c5d05 CoreFoundation`__CFRunLoopDoBlocks + 341
frame #26: 0x00007fff8d7c54ce CoreFoundation`__CFRunLoopRun + 910
frame #27: 0x00007fff8d7c4ed8 CoreFoundation`CFRunLoopRunSpecific + 296
frame #28: 0x00007fff89b4f935 HIToolbox`RunCurrentEventLoopInMode + 235
frame #29: 0x00007fff89b4f76f HIToolbox`ReceiveNextEventCommon + 432
frame #30: 0x00007fff89b4f5af HIToolbox`_BlockUntilNextEventMatchingListInModeWithFilter + 71
frame #31: 0x00007fff8c9e7df6 AppKit`_DPSNextEvent + 1067
frame #32: 0x00007fff8c9e7226 AppKit`-[NSApplication _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 454
frame #33: 0x0000000100fc064a libgdk-3.0.dylib`poll_func + 172
frame #34: 0x0000000101390ae1 libglib-2.0.0.dylib`g_main_context_iterate + 326
frame #35: 0x0000000101390d8e libglib-2.0.0.dylib`g_main_loop_run + 207
frame #36: 0x0000000100a4b1de libgtk-3.0.dylib`gtk_dialog_run + 335
frame #37: 0x000000010001fb43 juci`Dialog::gtk_dialog(boost::filesystem::path const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::vector<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, Gtk::ResponseType>, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, Gtk::ResponseType> > > const&, Gtk::FileChooserAction) + 467
frame #38: 0x000000010002090d juci`Dialog::open_file(boost::filesystem::path const&) + 333
frame #39: 0x0000000100080faa juci`std::__1::__function::__func<Window::set_menu_actions()::$_14, std::__1::allocator<Window::set_menu_actions()::$_14>, void ()>::operator()() + 122
frame #40: 0x000000010076bc68 libgiomm-2.4.1.dylib`(anonymous namespace)::SimpleAction_signal_activate_callback(_GSimpleAction*, _GVariant*, void*) + 114
frame #41: 0x00000001013248ab libgobject-2.0.0.dylib`g_closure_invoke + 258
frame #42: 0x00000001013397ed libgobject-2.0.0.dylib`signal_emit_unlocked_R + 2460
frame #43: 0x000000010133a28a libgobject-2.0.0.dylib`g_signal_emit_valist + 2039
frame #44: 0x000000010133a93e libgobject-2.0.0.dylib`g_signal_emit + 134
frame #45: 0x00000001011155b2 libgio-2.0.0.dylib`g_simple_action_activate + 154
frame #46: 0x0000000100718cd3 libgiomm-2.4.1.dylib`Gio::Action_Class::activate_vfunc_callback(_GAction*, _GVariant*) + 249
frame #47: 0x00000001009b9ce0 libgtk-3.0.dylib`gtk_action_muxer_activate_action + 63
frame #48: 0x00000001009b9ce0 libgtk-3.0.dylib`gtk_action_muxer_activate_action + 63
frame #49: 0x0000000100ae8ec0 libgtk-3.0.dylib`gtk_menu_tracker_item_activated + 111
frame #50: 0x00007fff8509407a libsystem_trace.dylib`_os_activity_initiate + 75
frame #51: 0x00007fff8cc50dbd AppKit`-[NSApplication sendAction:to:from:] + 460
frame #52: 0x00007fff8cc50b57 AppKit`-[NSMenuItem _corePerformAction] + 336
frame #53: 0x00007fff8cc508b7 AppKit`-[NSCarbonMenuImpl performActionWithHighlightingForItemAtIndex:] + 114
frame #54: 0x00007fff8509407a libsystem_trace.dylib`_os_activity_initiate + 75
frame #55: 0x00007fff8cce2e54 AppKit`-[NSMenu performActionForItemAtIndex:] + 131
frame #56: 0x00007fff8cce2dc7 AppKit`-[NSMenu _internalPerformActionForItemAtIndex:] + 35
frame #57: 0x00007fff8cce2c1f AppKit`-[NSCarbonMenuImpl _carbonCommandProcessEvent:handlerCallRef:] + 107
frame #58: 0x00007fff8cb87fd9 AppKit`NSSLMMenuEventHandler + 708
frame #59: 0x00007fff89b277be HIToolbox`DispatchEventToHandlers(EventTargetRec*, OpaqueEventRef*, HandlerCallRec*) + 1231
frame #60: 0x00007fff89b26c48 HIToolbox`SendEventToEventTargetInternal(OpaqueEventRef*, OpaqueEventTargetRef*, HandlerCallRec*) + 404
frame #61: 0x00007fff89b3c9e6 HIToolbox`SendEventToEventTarget + 40
frame #62: 0x00007fff89b8699a HIToolbox`SendHICommandEvent(unsigned int, HICommand const*, unsigned int, unsigned int, unsigned char, void const*, OpaqueEventTargetRef*, OpaqueEventTargetRef*, OpaqueEventRef**) + 411
frame #63: 0x00007fff89bb1d5b HIToolbox`SendMenuCommandWithContextAndModifiers + 59
frame #64: 0x00007fff89bb1d0c HIToolbox`SendMenuItemSelectedEvent + 188
frame #65: 0x00007fff89bb1be8 HIToolbox`FinishMenuSelection(SelectionData*, MenuResult*, MenuResult*) + 96
frame #66: 0x00007fff89bb2596 HIToolbox`MenuSelectCore(MenuData*, Point, double, unsigned int, OpaqueMenuRef**, unsigned short*) + 711
frame #67: 0x00007fff89bb2230 HIToolbox`_HandleMenuSelection2 + 460
frame #68: 0x00007fff8cb730fa AppKit`_NSHandleCarbonMenuEvent + 277
frame #69: 0x00007fff8c9e813d AppKit`_DPSNextEvent + 1906
frame #70: 0x00007fff8c9e7226 AppKit`-[NSApplication _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 454
frame #71: 0x0000000100fc064a libgdk-3.0.dylib`poll_func + 172
frame #72: 0x0000000101390ae1 libglib-2.0.0.dylib`g_main_context_iterate + 326
frame #73: 0x0000000101390b90 libglib-2.0.0.dylib`g_main_context_iteration + 55
frame #74: 0x000000010110cb40 libgio-2.0.0.dylib`g_application_run + 433
frame #75: 0x000000010003a0e1 juci`main + 49
frame #76: 0x00007fff8e5435ad libdyld.dylib`start + 1
It looks it's GTK's fault, but submitting in here in case GTK can be configured somehow to workaround this.
std::string Dialog::gtk_dialog(const boost::filesystem::path &path, const std::string &title,
const std::vector<std::pair<std::string, Gtk::ResponseType>> &buttons,
Gtk::FileChooserAction gtk_options) {
...
return dialog.run() == Gtk::RESPONSE_OK ? dialog.get_filename() : ""; --> this is JuCi++ last call
These are the versions brew installed for me:
~/R/j/b/src master brew list gtkmm3
/usr/local/Cellar/gtkmm3/3.20.1/include/gdkmm-3.0/ (49 files)
/usr/local/Cellar/gtkmm3/3.20.1/include/gtkmm-3.0/ (477 files)
/usr/local/Cellar/gtkmm3/3.20.1/lib/libgdkmm-3.0.1.dylib
/usr/local/Cellar/gtkmm3/3.20.1/lib/libgtkmm-3.0.1.dylib
/usr/local/Cellar/gtkmm3/3.20.1/lib/gdkmm-3.0/include/gdkmmconfig.h
/usr/local/Cellar/gtkmm3/3.20.1/lib/gtkmm-3.0/ (7 files)
/usr/local/Cellar/gtkmm3/3.20.1/lib/pkgconfig/ (2 files)
/usr/local/Cellar/gtkmm3/3.20.1/lib/ (2 other files)
/usr/local/Cellar/gtkmm3/3.20.1/share/devhelp/books/gtkmm-3.0/gtkmm-3.0.devhelp2
/usr/local/Cellar/gtkmm3/3.20.1/share/doc/ (1258 files)
~/R/j/b/src master brew list gtksourceview3
/usr/local/Cellar/gtksourceview3/3.20.4/include/gtksourceview-3.0/ (39 files)
/usr/local/Cellar/gtksourceview3/3.20.4/lib/libgtksourceview-3.0.1.dylib
/usr/local/Cellar/gtksourceview3/3.20.4/lib/girepository-1.0/GtkSource-3.0.typelib
/usr/local/Cellar/gtksourceview3/3.20.4/lib/pkgconfig/gtksourceview-3.0.pc
/usr/local/Cellar/gtksourceview3/3.20.4/lib/libgtksourceview-3.0.dylib
/usr/local/Cellar/gtksourceview3/3.20.4/share/gir-1.0/GtkSource-3.0.gir
/usr/local/Cellar/gtksourceview3/3.20.4/share/gtk-doc/ (76 files)
/usr/local/Cellar/gtksourceview3/3.20.4/share/gtksourceview-3.0/ (131 files)
/usr/local/Cellar/gtksourceview3/3.20.4/share/locale/ (81 files)
~/R/j/b/src master brew list gtksourceviewmm3
/usr/local/Cellar/gtksourceviewmm3/3.18.0/include/gtksourceviewmm-3.0/ (50 files)
/usr/local/Cellar/gtksourceviewmm3/3.18.0/lib/libgtksourceviewmm-3.0.0.dylib
/usr/local/Cellar/gtksourceviewmm3/3.18.0/lib/gtksourceviewmm-3.0/include/gtksourceviewmmconfig.h
/usr/local/Cellar/gtksourceviewmm3/3.18.0/lib/pkgconfig/gtksourceviewmm-3.0.pc
/usr/local/Cellar/gtksourceviewmm3/3.18.0/lib/libgtksourceviewmm-3.0.dylib
/usr/local/Cellar/gtksourceviewmm3/3.18.0/share/devhelp/books/gtksourceviewmm-3.0/gtksourceviewmm-3.0.devhelp2
/usr/local/Cellar/gtksourceviewmm3/3.18.0/share/doc/ (169 files)
~/R/j/b/src master brew list gtk+3
/usr/local/Cellar/gtk+3/3.20.6/bin/gtk-builder-tool
/usr/local/Cellar/gtk+3/3.20.6/bin/gtk-encode-symbolic-svg
/usr/local/Cellar/gtk+3/3.20.6/bin/gtk-launch
/usr/local/Cellar/gtk+3/3.20.6/bin/gtk-query-immodules-3.0
/usr/local/Cellar/gtk+3/3.20.6/bin/gtk-query-settings
/usr/local/Cellar/gtk+3/3.20.6/bin/gtk3-demo
/usr/local/Cellar/gtk+3/3.20.6/bin/gtk3-demo-application
/usr/local/Cellar/gtk+3/3.20.6/bin/gtk3-icon-browser
/usr/local/Cellar/gtk+3/3.20.6/bin/gtk3-update-icon-cache
/usr/local/Cellar/gtk+3/3.20.6/bin/gtk3-widget-factory
/usr/local/Cellar/gtk+3/3.20.6/etc/gtk-3.0/im-multipress.conf
/usr/local/Cellar/gtk+3/3.20.6/include/gail-3.0/ (3 files)
/usr/local/Cellar/gtk+3/3.20.6/include/gtk-3.0/ (366 files)
/usr/local/Cellar/gtk+3/3.20.6/lib/libgailutil-3.0.dylib
/usr/local/Cellar/gtk+3/3.20.6/lib/libgdk-3.0.dylib
/usr/local/Cellar/gtk+3/3.20.6/lib/libgtk-3.0.dylib
/usr/local/Cellar/gtk+3/3.20.6/lib/girepository-1.0/ (2 files)
/usr/local/Cellar/gtk+3/3.20.6/lib/gtk-3.0/ (15 files)
/usr/local/Cellar/gtk+3/3.20.6/lib/pkgconfig/ (6 files)
/usr/local/Cellar/gtk+3/3.20.6/lib/ (3 other files)
/usr/local/Cellar/gtk+3/3.20.6/share/aclocal/gtk-3.0.m4
/usr/local/Cellar/gtk+3/3.20.6/share/applications/ (3 files)
/usr/local/Cellar/gtk+3/3.20.6/share/gettext/ (2 files)
/usr/local/Cellar/gtk+3/3.20.6/share/gir-1.0/ (2 files)
/usr/local/Cellar/gtk+3/3.20.6/share/glib-2.0/ (5 files)
/usr/local/Cellar/gtk+3/3.20.6/share/gtk-3.0/gtkbuilder.rng
/usr/local/Cellar/gtk+3/3.20.6/share/gtk-doc/ (669 files)
/usr/local/Cellar/gtk+3/3.20.6/share/icons/ (25 files)
/usr/local/Cellar/gtk+3/3.20.6/share/locale/ (228 files)
/usr/local/Cellar/gtk+3/3.20.6/share/man/ (11 files)
/usr/local/Cellar/gtk+3/3.20.6/share/themes/ (3 files)
~/R/j/b/src master brew list glib
/usr/local/Cellar/glib/2.48.1/bin/gapplication
/usr/local/Cellar/glib/2.48.1/bin/gdbus
/usr/local/Cellar/glib/2.48.1/bin/gdbus-codegen
/usr/local/Cellar/glib/2.48.1/bin/gio-querymodules
/usr/local/Cellar/glib/2.48.1/bin/glib-compile-resources
/usr/local/Cellar/glib/2.48.1/bin/glib-compile-schemas
/usr/local/Cellar/glib/2.48.1/bin/glib-genmarshal
/usr/local/Cellar/glib/2.48.1/bin/glib-gettextize
/usr/local/Cellar/glib/2.48.1/bin/glib-mkenums
/usr/local/Cellar/glib/2.48.1/bin/gobject-query
/usr/local/Cellar/glib/2.48.1/bin/gresource
/usr/local/Cellar/glib/2.48.1/bin/gsettings
/usr/local/Cellar/glib/2.48.1/bin/gtester
/usr/local/Cellar/glib/2.48.1/bin/gtester-report
/usr/local/Cellar/glib/2.48.1/include/gio-unix-2.0/ (10 files)
/usr/local/Cellar/glib/2.48.1/include/glib-2.0/ (251 files)
/usr/local/Cellar/glib/2.48.1/lib/libgio-2.0.0.dylib
/usr/local/Cellar/glib/2.48.1/lib/libglib-2.0.0.dylib
/usr/local/Cellar/glib/2.48.1/lib/libgmodule-2.0.0.dylib
/usr/local/Cellar/glib/2.48.1/lib/libgobject-2.0.0.dylib
/usr/local/Cellar/glib/2.48.1/lib/libgthread-2.0.0.dylib
/usr/local/Cellar/glib/2.48.1/lib/glib-2.0/include/glibconfig.h
/usr/local/Cellar/glib/2.48.1/lib/pkgconfig/ (8 files)
/usr/local/Cellar/glib/2.48.1/lib/ (10 other files)
/usr/local/Cellar/glib/2.48.1/share/aclocal/ (3 files)
/usr/local/Cellar/glib/2.48.1/share/bash-completion/ (4 files)
/usr/local/Cellar/glib/2.48.1/share/gdb/ (2 files)
/usr/local/Cellar/glib/2.48.1/share/gettext/ (2 files)
/usr/local/Cellar/glib/2.48.1/share/glib-2.0/ (12 files)
/usr/local/Cellar/glib/2.48.1/share/locale/ (97 files)
And these are juCi++ dependencies:
otool -L ./juci
./juci:
/usr/local/opt/gtkmm3/lib/libgtkmm-3.0.1.dylib (compatibility version 3.0.0, current version 3.0.0)
/usr/local/opt/atkmm/lib/libatkmm-1.6.1.dylib (compatibility version 3.0.0, current version 3.0.0)
/usr/local/opt/gtkmm3/lib/libgdkmm-3.0.1.dylib (compatibility version 3.0.0, current version 3.0.0)
/usr/local/opt/glibmm/lib/libgiomm-2.4.1.dylib (compatibility version 5.0.0, current version 5.0.0)
/usr/local/opt/pangomm/lib/libpangomm-1.4.1.dylib (compatibility version 2.0.0, current version 2.30.0)
/usr/local/opt/glibmm/lib/libglibmm-2.4.1.dylib (compatibility version 5.0.0, current version 5.0.0)
/usr/local/opt/gtk+3/lib/libgtk-3.0.dylib (compatibility version 2001.0.0, current version 2001.6.0)
/usr/local/opt/gtk+3/lib/libgdk-3.0.dylib (compatibility version 2001.0.0, current version 2001.6.0)
/usr/local/opt/pango/lib/libpangocairo-1.0.0.dylib (compatibility version 4001.0.0, current version 4001.1.0)
/usr/local/opt/pango/lib/libpango-1.0.0.dylib (compatibility version 4001.0.0, current version 4001.1.0)
/usr/local/opt/atk/lib/libatk-1.0.0.dylib (compatibility version 22010.0.0, current version 22010.1.0)
/usr/local/opt/cairo/lib/libcairo-gobject.2.dylib (compatibility version 11403.0.0, current version 11403.6.0)
/usr/local/opt/glib/lib/libgio-2.0.0.dylib (compatibility version 4801.0.0, current version 4801.1.0)
/usr/local/opt/cairomm/lib/libcairomm-1.0.1.dylib (compatibility version 6.0.0, current version 6.0.0)
/usr/local/opt/cairo/lib/libcairo.2.dylib (compatibility version 11403.0.0, current version 11403.6.0)
/usr/local/opt/libsigc++/lib/libsigc-2.0.0.dylib (compatibility version 1.0.0, current version 1.0.0)
/usr/local/opt/gdk-pixbuf/lib/libgdk_pixbuf-2.0.0.dylib (compatibility version 3401.0.0, current version 3401.0.0)
/usr/local/opt/glib/lib/libgobject-2.0.0.dylib (compatibility version 4801.0.0, current version 4801.1.0)
/usr/local/opt/glib/lib/libglib-2.0.0.dylib (compatibility version 4801.0.0, current version 4801.1.0)
/usr/local/opt/gettext/lib/libintl.8.dylib (compatibility version 10.0.0, current version 10.5.0)
/usr/local/opt/gtksourceviewmm3/lib/libgtksourceviewmm-3.0.0.dylib (compatibility version 1.0.0, current version 1.0.0)
/usr/local/opt/gtksourceview3/lib/libgtksourceview-3.0.1.dylib (compatibility version 8.0.0, current version 8.0.0)
/usr/local/opt/boost/lib/libboost_system-mt.dylib (compatibility version 0.0.0, current version 0.0.0)
/usr/local/opt/boost/lib/libboost_filesystem-mt.dylib (compatibility version 0.0.0, current version 0.0.0)
/usr/local/opt/llvm/lib/libclang.dylib (compatibility version 1.0.0, current version 3.8.1)
/usr/local/opt/llvm/lib/liblldb.3.8.1.dylib (compatibility version 0.0.0, current version 3.8.1)
/usr/local/opt/aspell/lib/libaspell.15.dylib (compatibility version 17.0.0, current version 17.5.0)
/usr/local/opt/libgit2/lib/libgit2.24.dylib (compatibility version 24.0.0, current version 0.24.0)
/usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 120.1.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1226.10.1)
The OS X is 10.10 El Capitan 10.11.5