This bug affects many plugins. When ardour4 is compiled with address sanitizer, it crashes when i double-click previously added plugin to open its GUI.
==3228== ERROR: AddressSanitizer: SEGV on unknown address 0x000000000968 (pc 0x7f84856ad95a sp 0x7fffe430ccf0 bp 0x7f8459e30567 T0)
AddressSanitizer can not provide additional info.
#0 0x7f84856ad959 in XInternAtom ??:0:0
#1 0x7f8459d8ffdf in juce::Atoms::getIfExists(char const*) /home/z/pproj/DISTRHO-Ports/libs/juce/build-juce/../source/modules/juce_gui_basics/native/juce_linux_Windowing.cpp:104:0
#2 0x7f8459d917f2 in juce::DisplayGeometry::queryDisplayInfos(_XDisplay*, double) /home/z/pproj/DISTRHO-Ports/libs/juce/build-juce/../source/modules/juce_gui_basics/native/juce_linux_Windowing.cpp:1275:0
#3 0x7f8459d9100b in juce::DisplayGeometry::DisplayGeometry(_XDisplay*, double) /home/z/pproj/DISTRHO-Ports/libs/juce/build-juce/../source/modules/juce_gui_basics/native/juce_linux_Windowing.cpp:783:0
#4 0x7f8459d9163f in juce::DisplayGeometry::getOrCreateInstance(_XDisplay*, double) /home/z/pproj/DISTRHO-Ports/libs/juce/build-juce/../source/modules/juce_gui_basics/native/juce_linux_Windowing.cpp:924:0
#5 0x7f8459d5ac39 in juce::Desktop::Displays::findDisplays(float) /home/z/pproj/DISTRHO-Ports/libs/juce/build-juce/../source/modules/juce_gui_basics/native/juce_linux_Windowing.cpp:3759:0
#6 0x7f8459cd0fd5 in juce::Desktop::Displays::init(juce::Desktop&) /home/z/pproj/DISTRHO-Ports/libs/juce/build-juce/../source/modules/juce_gui_basics/components/juce_Desktop.cpp:335:0
#7 0x7f8459cd0bed in juce::Desktop::Displays::Displays(juce::Desktop&) /home/z/pproj/DISTRHO-Ports/libs/juce/build-juce/../source/modules/juce_gui_basics/components/juce_Desktop.cpp:261:0
#8 0x7f8459ccfb29 in juce::Desktop::Desktop() /home/z/pproj/DISTRHO-Ports/libs/juce/build-juce/../source/modules/juce_gui_basics/components/juce_Desktop.cpp:33:0
#9 0x7f8459ccfe98 in juce::Desktop::getInstance() /home/z/pproj/DISTRHO-Ports/libs/juce/build-juce/../source/modules/juce_gui_basics/components/juce_Desktop.cpp:51:0
#10 0x7f8459d04220 in juce::LookAndFeel::getDefaultLookAndFeel() /home/z/pproj/DISTRHO-Ports/libs/juce/build-juce/../source/modules/juce_gui_basics/lookandfeel/juce_LookAndFeel.cpp:86:0
#11 0x7f8459ccb800 in juce::Component::getLookAndFeel() const /home/z/pproj/DISTRHO-Ports/libs/juce/build-juce/../source/modules/juce_gui_basics/components/juce_Component.cpp:2131:0
#12 0x7f8459d362d4 in juce::Slider::lookAndFeelChanged() /home/z/pproj/DISTRHO-Ports/libs/juce/build-juce/../source/modules/juce_gui_basics/widgets/juce_Slider.cpp:1403:0
#13 0x7f8459d35ac5 in juce::Slider::init(juce::Slider::SliderStyle, juce::Slider::TextEntryBoxPosition) /home/z/pproj/DISTRHO-Ports/libs/juce/build-juce/../source/modules/juce_gui_basics/widgets/juce_Slider.cpp:1313:0
#14 0x7f8459d35904 in juce::Slider::Slider(juce::String const&) /home/z/pproj/DISTRHO-Ports/libs/juce/build-juce/../source/modules/juce_gui_basics/widgets/juce_Slider.cpp:1298:0
#15 0x7f8459ac1d46 in ImageSlider::ImageSlider(juce::Image, int, int) /home/z/pproj/DISTRHO-Ports/ports/tal-reverb-3/LV2/../source/ImageSlider.h:32:0
#16 0x7f8459ac09df in TalComponent::addSlider(juce::Component*, int, int, TalCore*, juce::Image, int, int) /home/z/pproj/DISTRHO-Ports/ports/tal-reverb-3/LV2/../source/TalComponent.cpp:79:0
#17 0x7f8459abfbba in TalComponent::TalComponent(TalCore*) /home/z/pproj/DISTRHO-Ports/ports/tal-reverb-3/LV2/../source/TalComponent.cpp:18:0
#18 0x7f8459ab94a0 in TalCore::createEditor() /home/z/pproj/DISTRHO-Ports/ports/tal-reverb-3/LV2/../source/TalCore.cpp:260:0
#19 0x7f8459b05905 in juce::AudioProcessor::createEditorIfNeeded() /home/z/pproj/DISTRHO-Ports/libs/juce/build-juce/../source/modules/juce_audio_processors/processors/juce_AudioProcessor.cpp:372:0
#20 0x7f8459ac8004 in JuceLv2UIWrapper::JuceLv2UIWrapper(juce::AudioProcessor*, void (*)(void*, unsigned int, unsigned int, unsigned int, void const*), void*, void**, _LV2_Feature const* const*, bool) /home/z/pproj/DISTRHO-Ports/ports/tal-reverb-3/LV2/../../../libs/juce/source/modules/juce_audio_plugin_client/LV2/juce_LV2_Wrapper.cpp:809:0
#21 0x7f8459acae12 in JuceLv2Wrapper::getUI(void (*)(void*, unsigned int, unsigned int, unsigned int, void const*), void*, void**, _LV2_Feature const* const*, bool) /home/z/pproj/DISTRHO-Ports/ports/tal-reverb-3/LV2/../../../libs/juce/source/modules/juce_audio_plugin_client/LV2/juce_LV2_Wrapper.cpp:1833:0
#22 0x7f8459ac6c8a in juceLV2UI_Instantiate(void (*)(void*, unsigned int, unsigned int, unsigned int, void const*), void*, void**, _LV2_Feature const* const*, bool) /home/z/pproj/DISTRHO-Ports/ports/tal-reverb-3/LV2/../../../libs/juce/source/modules/juce_audio_plugin_client/LV2/juce_LV2_Wrapper.cpp:2014:0
#23 0x7f8459ac6d5d in juceLV2UI_InstantiateParent(_LV2UI_Descriptor const*, char const*, char const*, void (*)(void*, unsigned int, unsigned int, unsigned int, void const*), void*, void**, _LV2_Feature const* const*) /home/z/pproj/DISTRHO-Ports/ports/tal-reverb-3/LV2/../../../libs/juce/source/modules/juce_audio_plugin_client/LV2/juce_LV2_Wrapper.cpp:2031:0
#24 0x7f84859bd80e in suil_instance_new ??:0:0
#25 0x12e1099 in LV2PluginUI::lv2ui_instantiate(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) ??:0:0
#26 0x12e294f in LV2PluginUI::on_window_show(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) ??:0:0
#27 0xe0c0d4 in PluginUIWindow::on_show() ??:0:0
#28 0x7f8486f8448c in Gtk::Widget_Class::show_callback(_GtkWidget*) ??:0:0
#29 0x7f8488cd7e77 in g_closure_invoke ??:0:0
#30 0x7f8488ce8896 in g_signal_handler_disconnect ??:?
#31 0x7f8488ce8896 in ?? ??:0
#32 0x7f8488cf0d47 in g_signal_emit_valist ??:0:0
#33 0x7f8488cf1001 in g_signal_emit ??:0:0
#34 0x7f84883c31b5 in gtk_widget_show ??:0:0
#35 0x7f8486f8434f in Gtk::Widget_Class::show_all_vfunc_callback(_GtkWidget*) ??:0:0
#36 0x125c841 in WM::ProxyBase::toggle() ??:0:0
#37 0xe82d30 in ProcessorBox::edit_processor(boost::shared_ptr<ARDOUR::Processor>) ??:0:0
#38 0xe93d02 in ProcessorBox::processor_button_press_event(_GdkEventButton*, ProcessorEntry*) ??:0:0
#39 0xebf83c in sigc::internal::signal_emit2<bool, _GdkEventButton*, ProcessorEntry*, sigc::nil>::emit(sigc::internal::signal_impl*, _GdkEventButton* const&, ProcessorEntry* const&) ??:0:0
#40 0xebfcb9 in Gtkmm2ext::DnDVBox<ProcessorEntry>::button_press(_GdkEventButton*, ProcessorEntry*) ??:0:0
#41 0x7f8486f8979a in Gtk::Widget::get_accessible_vfunc() ??:?
#42 0x7f8486f8979a in ?? ??:0
#43 0x7f84882adf94 in gtk_marshal_VOID__UINT_STRING ??:?
#44 0x7f84882adf94 in ?? ??:0
#45 0x7f8488cd7e77 in g_closure_invoke ??:0:0
#46 0x7f8488ce9310 in g_signal_handler_disconnect ??:?
#47 0x7f8488ce9310 in ?? ??:0
#48 0x7f8488cf0a17 in g_signal_emit_valist ??:0:0
#49 0x7f8488cf1001 in g_signal_emit ??:0:0
#50 0x7f84883bdaa3 in gtk_widget_translate_coordinates ??:?
#51 0x7f84883bdaa3 in ?? ??:0
#52 0x7f84882ac743 in gtk_propagate_event ??:0:0
#53 0x7f84882acafa in gtk_main_do_event ??:0:0
#54 0x7f8487f1d90b in gdk_event_get_graphics_expose ??:?
#55 0x7f8487f1d90b in ?? ??:0
#56 0x7f8488a04a03 in g_main_context_dispatch ??:0:0
#57 0x7f8488a04c47 in g_main_context_dispatch ??:?
#58 0x7f8488a04c47 in ?? ??:0
#59 0x7f8488a04f09 in g_main_loop_run ??:0:0
#60 0x7f84882abbe6 in gtk_main ??:0:0
#61 0x7f848b018420 in Gtkmm2ext::UI::run(Receiver&) ??:0:0
#62 0x49fed3 in main ??:0:0
#63 0x7f8484556b04 in __libc_start_main ??:0:0
#64 0x4b1b61 in _start ??:0:0
==3228== ABORTING
==27466== ERROR: AddressSanitizer: SEGV on unknown address 0x000000000968 (pc 0x7f8020f5495a sp 0x7fffeea43db0 bp 0x7f7fecd61447 T0)
AddressSanitizer can not provide additional info.
#0 0x7f8020f54959 in XInternAtom ??:0:0
#1 0x7f7fecc54789 in juce::Atoms::getIfExists(char const*) /home/z/pproj/DISTRHO-Ports/libs/juce/build-juce/../source/modules/juce_gui_basics/native/juce_linux_Windowing.cpp:104:0
#2 0x7f7fecc55f9c in juce::DisplayGeometry::queryDisplayInfos(_XDisplay*, double) /home/z/pproj/DISTRHO-Ports/libs/juce/build-juce/../source/modules/juce_gui_basics/native/juce_linux_Windowing.cpp:1275:0
#3 0x7f7fecc557b5 in juce::DisplayGeometry::DisplayGeometry(_XDisplay*, double) /home/z/pproj/DISTRHO-Ports/libs/juce/build-juce/../source/modules/juce_gui_basics/native/juce_linux_Windowing.cpp:783:0
#4 0x7f7fecc55de9 in juce::DisplayGeometry::getOrCreateInstance(_XDisplay*, double) /home/z/pproj/DISTRHO-Ports/libs/juce/build-juce/../source/modules/juce_gui_basics/native/juce_linux_Windowing.cpp:924:0
#5 0x7f7fecc1f44b in juce::Desktop::Displays::findDisplays(float) /home/z/pproj/DISTRHO-Ports/libs/juce/build-juce/../source/modules/juce_gui_basics/native/juce_linux_Windowing.cpp:3759:0
#6 0x7f7fecb957e7 in juce::Desktop::Displays::init(juce::Desktop&) /home/z/pproj/DISTRHO-Ports/libs/juce/build-juce/../source/modules/juce_gui_basics/components/juce_Desktop.cpp:335:0
#7 0x7f7fecb953ff in juce::Desktop::Displays::Displays(juce::Desktop&) /home/z/pproj/DISTRHO-Ports/libs/juce/build-juce/../source/modules/juce_gui_basics/components/juce_Desktop.cpp:261:0
#8 0x7f7fecb9433b in juce::Desktop::Desktop() /home/z/pproj/DISTRHO-Ports/libs/juce/build-juce/../source/modules/juce_gui_basics/components/juce_Desktop.cpp:33:0
#9 0x7f7fecb946aa in juce::Desktop::getInstance() /home/z/pproj/DISTRHO-Ports/libs/juce/build-juce/../source/modules/juce_gui_basics/components/juce_Desktop.cpp:51:0
...