I’m not too familiarized with gdb so I’m not sure if this is the full picture we need.
I set a breakpoint in the line where the assertion is triggered and when the execution reached the breakpoint, I ran the gdb command backtrace full
. Here’s the output:
backtrace full
#0 juce::Timer::~Timer (this=0x555556508758) at /home/Rafa/Projects/Active/project/repo/Frameworks/JUCE/modules/juce_events/timers/juce_Timer.cpp:329
No locals.
#1 0x00007fffee90f90d in juce::LinuxComponentPeer::LinuxVBlankManager::~LinuxVBlankManager (this=0x555556508758) at /home/Rafa/Projects/Active/project/repo/Frameworks/JUCE/modules/juce_gui_basics/native/juce_linux_Windowing.cpp:519
No locals.
#2 0x00007fffee90fa8a in juce::LinuxComponentPeer::~LinuxComponentPeer (this=0x5555565086b0) at /home/Rafa/Projects/Active/project/repo/Frameworks/JUCE/modules/juce_gui_basics/native/juce_linux_Windowing.cpp:83
instance = 0x7fffe0000bb0
#3 0x00007fffee90fae9 in juce::LinuxComponentPeer::~LinuxComponentPeer (this=0x5555565086b0) at /home/Rafa/Projects/Active/project/repo/Frameworks/JUCE/modules/juce_gui_basics/native/juce_linux_Windowing.cpp:69
No locals.
#4 0x00007fffee7430e0 in juce::Component::removeFromDesktop (this=0x5555567e8c60) at /home/Rafa/Projects/Active/project/repo/Frameworks/JUCE/modules/juce_gui_basics/components/juce_Component.cpp:772
peer = 0x5555565086b0
#5 0x00007fffee74291e in juce::Component::~Component (this=0x5555567e8c60) at /home/Rafa/Projects/Active/project/repo/Frameworks/JUCE/modules/juce_gui_basics/components/juce_Component.cpp:526
No locals.
#6 0x00007fffee68fc49 in juce::JuceVST3EditController::JuceVST3Editor::ContentWrapperComponent::~ContentWrapperComponent (this=0x5555567e8c60) at /home/Rafa/Projects/Active/project/repo/Frameworks/JUCE/modules/juce_audio_plugin_client/VST3/juce_VST3_Wrapper.cpp:2079
No locals.
#7 0x00007fffee68fc79 in juce::JuceVST3EditController::JuceVST3Editor::ContentWrapperComponent::~ContentWrapperComponent (this=0x5555567e8c60) at /home/Rafa/Projects/Active/project/repo/Frameworks/JUCE/modules/juce_audio_plugin_client/VST3/juce_VST3_Wrapper.cpp:2073
No locals.
#8 0x00007fffee68f7d0 in juce::JuceVST3EditController::JuceVST3Editor::MessageManagerLockedDeleter::operator()<juce::JuceVST3EditController::JuceVST3Editor::ContentWrapperComponent> (this=0x55555661f860, object=0x5555567e8c60) at /home/Rafa/Projects/Active/project/repo/Frameworks/JUCE/modules/juce_audio_plugin_client/VST3/juce_VST3_Wrapper.cpp:2285
mmLock = {<juce::Thread::Listener> = {_vptr.Listener = 0x7fffeefea920 <vtable for juce::MessageManagerLock+16>}, mmLock = {blockingMessage = {referencedObject = 0x0}, lockedEvent = {useManualReset = false, mutex = {<std::__mutex_base> = {_M_mutex = {__data = {__lock = 0, __count = 0, __owner = 0, __nusers = 0, __kind = 0, __spins = 0, __elision = 0, __list = {__prev = 0x0, __next = 0x0}}, __size = '\\000' <repeats 39 times>, __align = 0}}, <No data fields>}, condition = {_M_cond = {_M_cond = {__data = {__wseq = {__value64 = 0, __value32 = {__low = 0, __high = 0}}, __g1_start = {__value64 = 0, __value32 = {__low = 0, __high = 0}}, __g_refs = {0, 0}, __g_size = {0, 0}, __g1_orig_size = 0, __wrefs = 0, __g_signals = {0, 0}}, __size = '\\000' <repeats 47 times>, __align = 0}}}, triggered = std::atomic<bool> = { false }, leakDetector96 = {<No data fields>}}, abortWait = {value = std::atomic<int> = { 0 }}, lockGained = {value = std::atomic<int> = { 0 }}}, locked = true}
#9 0x00007fffee68f71c in std::__uniq_ptr_impl<juce::JuceVST3EditController::JuceVST3Editor::ContentWrapperComponent, juce::JuceVST3EditController::JuceVST3Editor::MessageManagerLockedDeleter>::reset (this=0x55555661f860, __p=0x0) at /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/12.2.1/../../../../include/c++/12.2.1/bits/unique_ptr.h:203
__old_p = 0x5555567e8c60
#10 0x00007fffee68f1ed in std::unique_ptr<juce::JuceVST3EditController::JuceVST3Editor::ContentWrapperComponent, juce::JuceVST3EditController::JuceVST3Editor::MessageManagerLockedDeleter>::reset (this=0x55555661f860, __p=0x0) at /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/12.2.1/../../../../include/c++/12.2.1/bits/unique_ptr.h:501
No locals.
#11 0x00007fffee695b71 in std::unique_ptr<juce::JuceVST3EditController::JuceVST3Editor::ContentWrapperComponent, juce::JuceVST3EditController::JuceVST3Editor::MessageManagerLockedDeleter>::operator=(decltype(nullptr)) (this=0x55555661f860) at /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/12.2.1/../../../../include/c++/12.2.1/bits/unique_ptr.h:434
No locals.
#12 0x00007fffee68c185 in juce::JuceVST3EditController::JuceVST3Editor::removed (this=0x55555661f7d0) at /home/Rafa/Projects/Active/project/repo/Frameworks/JUCE/modules/juce_audio_plugin_client/VST3/juce_VST3_Wrapper.cpp:1837
No locals.
#13 0x000055555586b7a3 in juce::VST3PluginWindow::~VST3PluginWindow (this=0x555556514670, __in_chrg=<optimized out>) at ../../../../modules/juce_audio_processors/format_types/juce_VST3PluginFormat.cpp:1478
No locals.
#14 0x000055555586b8ba in juce::VST3PluginWindow::~VST3PluginWindow (this=0x555556514670, __in_chrg=<optimized out>) at ../../../../modules/juce_audio_processors/format_types/juce_VST3PluginFormat.cpp:1489
No locals.
#15 0x0000555555898666 in juce::Component::SafePointer<juce::Component>::deleteAndZero (this=0x5555565092d0) at ../../../../modules/juce_gui_basics/components/juce_Component.h:2314
No locals.
#16 0x0000555555cc95e4 in juce::ResizableWindow::clearContentComponent (this=0x5555565091c0) at ../../../../modules/juce_gui_basics/windows/juce_ResizableWindow.cpp:107
No locals.
#17 0x00005555556d44f2 in PluginWindow::~PluginWindow (this=0x5555565091c0, __in_chrg=<optimized out>) at ../../Source/Plugins/../UI/../Plugins/../UI/PluginWindow.h:202
No locals.
#18 0x00005555556d453e in PluginWindow::~PluginWindow (this=0x5555565091c0, __in_chrg=<optimized out>) at ../../Source/Plugins/../UI/../Plugins/../UI/PluginWindow.h:203
No locals.
#19 0x00005555556d868a in juce::ContainerDeletePolicy<PluginWindow>::destroy (object=0x5555565091c0) at ../../../../modules/juce_core/memory/juce_ContainerDeletePolicy.h:54
size = 520
#20 0x00005555556d7449 in juce::OwnedArray<PluginWindow, juce::DummyCriticalSection>::deleteAllObjects (this=0x5555567419c8) at ../../../../modules/juce_core/containers/juce_OwnedArray.h:815
e = 0x5555565091c0
i = 0
#21 0x00005555556d7a58 in juce::OwnedArray<PluginWindow, juce::DummyCriticalSection>::clearQuick (this=0x5555567419c8, deleteObjects=true) at ../../../../modules/juce_core/containers/juce_OwnedArray.h:120
lock = {<No data fields>}
#22 0x00005555556d65be in juce::OwnedArray<PluginWindow, juce::DummyCriticalSection>::clear (this=0x5555567419c8, deleteObjects=true) at ../../../../modules/juce_core/containers/juce_OwnedArray.h:109
lock = {<No data fields>}
#23 0x00005555556cd814 in PluginGraph::closeAnyOpenPluginWindows (this=0x5555567416c0) at ../../Source/Plugins/PluginGraph.cpp:190
wasEmpty = false
#24 0x00005555556dd5cd in GraphDocumentComponent::closeAnyOpenPluginWindows (this=0x555556765080) at ../../Source/UI/GraphEditorPanel.cpp:1382
No locals.
#25 0x00005555556f0914 in MainHostWindow::tryToQuitApplication (this=0x55555660c900) at ../../Source/UI/MainHostWindow.cpp:405
No locals.
#26 0x00005555556f084a in MainHostWindow::closeButtonPressed (this=0x55555660c900) at ../../Source/UI/MainHostWindow.cpp:386
No locals.
#27 0x0000555555cc8e67 in juce::DocumentWindow::userTriedToCloseWindow (this=0x55555660c900) at ../../../../modules/juce_gui_basics/windows/juce_DocumentWindow.cpp:357
No locals.
#28 0x0000555555cc7217 in juce::ComponentPeer::handleUserClosingWindow (this=0x555556634bd0) at ../../../../modules/juce_gui_basics/windows/juce_ComponentPeer.cpp:576
No locals.
#29 0x0000555555ce6d28 in juce::XWindowSystem::handleClientMessageEvent (this=0x5555564d1d30, peer=0x555556634bd0, clientMsg=..., event=...) at ../../../../modules/juce_gui_basics/native/x11/juce_linux_XWindowSystem.cpp:3818
atom = 361
#30 0x0000555555ce50b7 in juce::XWindowSystem::handleWindowMessage (this=0x5555564d1d30, peer=0x555556634bd0, event=...) at ../../../../modules/juce_gui_basics/native/x11/juce_linux_XWindowSystem.cpp:3331
No locals.
#31 0x0000555555ce7209 in juce::XWindowSystem::windowMessageReceive (event=...) at ../../../../modules/juce_gui_basics/native/x11/juce_linux_XWindowSystem.cpp:3909
peer = 0x555556634bd0
instance = 0x5555564d1d30
#32 0x0000555555ce478c in operator() (__closure=0x5555564ef310) at ../../../../modules/juce_gui_basics/native/x11/juce_linux_XWindowSystem.cpp:3245
evt = {type = 33, xany = {type = 33, serial = 2181, send_event = 1, display = 0x5555564d5be0, window = 98566152}, xkey = {type = 33, serial = 2181, send_event = 1, display = 0x5555564d5be0, window = 98566152, root = 363, subwindow = 32, time = 361, x = 21308576, y = 0, x_root = 0, y_root = 0, state = 3, keycode = 0, same_screen = 275301978}, xbutton = {type = 33, serial = 2181, send_event = 1, display = 0x5555564d5be0, window = 98566152, root = 363, subwindow = 32, time = 361, x = 21308576, y = 0, x_root = 0, y_root = 0, state = 3, button = 0, same_screen = 275301978}, xmotion = {type = 33, serial = 2181, send_event = 1, display = 0x5555564d5be0, window = 98566152, root = 363, subwindow = 32, time = 361, x = 21308576, y = 0, x_root = 0, y_root = 0, state = 3, is_hint = 0 '\\000', same_screen = 275301978}, xcrossing = {type = 33, serial = 2181, send_event = 1, display = 0x5555564d5be0, window = 98566152, root = 363, subwindow = 32, time = 361, x = 21308576, y = 0, x_root = 0, y_root = 0, mode = 3, detail = 0, same_screen = 275301978, focus = 0, state = 0}, xfocus = {type = 33, serial = 2181, send_event = 1, display = 0x5555564d5be0, window = 98566152, mode = 363, detail = 0}, xexpose = {type = 33, serial = 2181, send_event = 1, display = 0x5555564d5be0, window = 98566152, x = 363, y = 0, width = 32, height = 0, count = 361}, xgraphicsexpose = {type = 33, serial = 2181, send_event = 1, display = 0x5555564d5be0, drawable = 98566152, x = 363, y = 0, width = 32, height = 0, count = 361, major_code = 0, minor_code = 21308576}, xnoexpose = {type = 33, serial = 2181, send_event = 1, display = 0x5555564d5be0, drawable = 98566152, major_code = 363, minor_code = 0}, xvisibility = {type = 33, serial = 2181, send_event = 1, display = 0x5555564d5be0, window = 98566152, state = 363}, xcreatewindow = {type = 33, serial = 2181, send_event = 1, display = 0x5555564d5be0, parent = 98566152, window = 363, x = 32, y = 0, width = 361, height = 0, border_width = 21308576, override_redirect = 0}, xdestroywindow = {type = 33, serial = 2181, send_event = 1, display = 0x5555564d5be0, event = 98566152, window = 363}, xunmap = {type = 33, serial = 2181, send_event = 1, display = 0x5555564d5be0, event = 98566152, window = 363, from_configure = 32}, xmap = {type = 33, serial = 2181, send_event = 1, display = 0x5555564d5be0, event = 98566152, window = 363, override_redirect = 32}, xmaprequest = {type = 33, serial = 2181, send_event = 1, display = 0x5555564d5be0, parent = 98566152, window = 363}, xreparent = {type = 33, serial = 2181, send_event = 1, display = 0x5555564d5be0, event = 98566152, window = 363, parent = 32, x = 361, y = 0, override_redirect = 21308576}, xconfigure = {type = 33, serial = 2181, send_event = 1, display = 0x5555564d5be0, event = 98566152, window = 363, x = 32, y = 0, width = 361, height = 0, border_width = 21308576, above = 0, override_redirect = 3}, xgravity = {type = 33, serial = 2181, send_event = 1, display = 0x5555564d5be0, event = 98566152, window = 363, x = 32, y = 0}, xresizerequest = {type = 33, serial = 2181, send_event = 1, display = 0x5555564d5be0, window = 98566152, width = 363, height = 0}, xconfigurerequest = {type = 33, serial = 2181, send_event = 1, display = 0x5555564d5be0, parent = 98566152, window = 363, x = 32, y = 0, width = 361, height = 0, border_width = 21308576, above = 0, detail = 3, value_mask = 275301978}, xcirculate = {type = 33, serial = 2181, send_event = 1, display = 0x5555564d5be0, event = 98566152, window = 363, place = 32}, xcirculaterequest = {type = 33, serial = 2181, send_event = 1, display = 0x5555564d5be0, parent = 98566152, window = 363, place = 32}, xproperty = {type = 33, serial = 2181, send_event = 1, display = 0x5555564d5be0, window = 98566152, atom = 363, time = 32, state = 361}, xselectionclear = {type = 33, serial = 2181, send_event = 1, display = 0x5555564d5be0, window = 98566152, selection = 363, time = 32}, xselectionrequest = {type = 33, serial = 2181, send_event = 1, display = 0x5555564d5be0, owner = 98566152, requestor = 363, selection = 32, target = 361, property = 21308576, time = 0}, xselection = {type = 33, serial = 2181, send_event = 1, display = 0x5555564d5be0, requestor = 98566152, selection = 363, target = 32, property = 361, time = 21308576}, xcolormap = {type = 33, serial = 2181, send_event = 1, display = 0x5555564d5be0, window = 98566152, colormap = 363, c_new = 32, state = 0}, xclient = {type = 33, serial = 2181, send_event = 1, display = 0x5555564d5be0, window = 98566152, message_type = 363, format = 32, data = {b = "i\\001\\000\\000\\000\\000\\000\\000\\240$E\\001\\000\\000\\000\\000\\000\\000\\000", s = {361, 0, 0, 0, 9376, 325, 0, 0, 0, 0}, l = {361, 21308576, 0, 3, 275301978}}}, xmapping = {type = 33, serial = 2181, send_event = 1, display = 0x5555564d5be0, window = 98566152, request = 363, first_keycode = 0, count = 32}, xerror = {type = 33, display = 0x885, resourceid = 1, serial = 93825008491488, error_code = 8 '\\b', request_code = 0 '\\000', minor_code = 224 '\\340'}, xkeymap = {type = 33, serial = 2181, send_event = 1, display = 0x5555564d5be0, window = 98566152, key_vector = "k\\001\\000\\000\\000\\000\\000\\000 \\000\\000\\000\\000\\000\\000\\000i\\001\\000\\000\\000\\000\\000\\000\\240$E\\001\\000\\000\\000"}, xgeneric = {type = 33, serial = 2181, send_event = 1, display = 0x5555564d5be0, extension = 98566152, evtype = 0}, xcookie = {type = 33, serial = 2181, send_event = 1, display = 0x5555564d5be0, extension = 98566152, evtype = 0, cookie = 363, data = 0x20}, pad = {140733193388065, 2181, 1, 93825008491488, 98566152, 363, 32, 361, 21308576, 0, 3, 275301978, 0, 0, 0, 0, 161, 93825008815776, 93825008965040, 93825008893024, 0, 48, 64, 93802136249139}}
this = 0x5555564d1d30
#33 0x0000555555cfe646 in std::__invoke_impl<void, juce::XWindowSystem::initialiseXDisplay()::<lambda(int)>&, int>(std::__invoke_other, struct {...} &) (__f=...) at /usr/include/c++/12.2.1/bits/invoke.h:61
No locals.
#34 0x0000555555cf96de in std::__invoke_r<void, juce::XWindowSystem::initialiseXDisplay()::<lambda(int)>&, int>(struct {...} &) (__fn=...) at /usr/include/c++/12.2.1/bits/invoke.h:111
No locals.
#35 0x0000555555cf406b in std::_Function_handler<void(int), juce::XWindowSystem::initialiseXDisplay()::<lambda(int)> >::_M_invoke(const std::_Any_data &, int &&) (__functor=..., __args#0=@0x7fffffffcf24: 5) at /usr/include/c++/12.2.1/bits/std_function.h:290
No locals.
#36 0x0000555555b20f30 in std::function<void (int)>::operator()(int) const (this=0x5555564ef310, __args#0=5) at /usr/include/c++/12.2.1/bits/std_function.h:591
No locals.
#37 0x0000555555b15d6b in operator() (__closure=0x5555564ef310) at ../../../../modules/juce_events/native/juce_linux_Messaging.cpp:357
fd = 5
cb = {<std::_Maybe_unary_or_binary_function<void, int>> = {<std::unary_function<int, void>> = {<No data fields>}, <No data fields>}, <std::_Function_base> = {static _M_max_size = 16, static _M_max_align = 8, _M_functor = {_M_unused = {_M_object = 0x5555564d1d30, _M_const_object = 0x5555564d1d30, _M_function_pointer = 0x5555564d1d30, _M_member_pointer = (void (std::_Undefined_class::*)(std::_Undefined_class * const)) 0x5555564d1d30}, _M_pod_data = "0\\035MVUU\\000\\000\\000\\000\\000\\000\\000\\000\\000"}, _M_manager = 0x555555cf4072 <std::_Function_handler<void(int), juce::XWindowSystem::initialiseXDisplay()::<lambda(int)> >::_M_manager(std::_Any_data &, const std::_Any_data &, std::_Manager_operation)>}, _M_invoker = 0x555555cf4034 <std::_Function_handler<void(int), juce::XWindowSystem::initialiseXDisplay()::<lambda(int)> >::_M_invoke(const std::_Any_data &, int &&)>}
#38 0x0000555555b16d34 in std::__invoke_impl<void, juce::LinuxEventLoop::registerFdCallback(int, std::function<void(int)>, short int)::<lambda()>&>(std::__invoke_other, struct {...} &) (__f=...) at /usr/include/c++/12.2.1/bits/invoke.h:61
No locals.
#39 0x0000555555b16792 in std::__invoke_r<void, juce::LinuxEventLoop::registerFdCallback(int, std::function<void(int)>, short int)::<lambda()>&>(struct {...} &) (__fn=...) at /usr/include/c++/12.2.1/bits/invoke.h:111
No locals.
#40 0x0000555555b1644c in std::_Function_handler<void(), juce::LinuxEventLoop::registerFdCallback(int, std::function<void(int)>, short int)::<lambda()> >::_M_invoke(const std::_Any_data &) (__functor=...) at /usr/include/c++/12.2.1/bits/std_function.h:290
No locals.
#41 0x0000555555672ccc in std::function<void ()>::operator()() const (this=0x5555564ef860) at /usr/include/c++/12.2.1/bits/std_function.h:591
No locals.
#42 0x0000555555b1b644 in juce::InternalRunLoop::dispatchPendingEvents (this=0x5555564d1130) at ../../../../modules/juce_events/native/juce_linux_Messaging.cpp:180
fn = std::shared_ptr<std::function<void()>> (use count 2, weak count 0) = {get() = 0x5555564ef860}
__for_range = std::vector of length 1, capacity 4 = {std::shared_ptr<std::function<void()>> (use count 2, weak count 0) = {get() = 0x5555564ef860}}
__for_begin = std::shared_ptr<std::function<void()>> (use count 2, weak count 0) = {get() = 0x5555564ef860}
__for_end = std::shared_ptr<std::function<void()>> (use count 1, weak count 0) = {get() = 0x5555565a1ef0}
#43 0x0000555555b15d1e in juce::dispatchNextMessageOnSystemQueue (returnIfNoPendingMessages=false) at ../../../../modules/juce_events/native/juce_linux_Messaging.cpp:340
runLoop = 0x5555564d1130
#44 0x0000555555b10019 in juce::MessageManager::runDispatchLoop (this=0x5555564d1090) at ../../../../modules/juce_events/messages/juce_MessageManager.cpp:109
No locals.
#45 0x0000555555b0f534 in juce::JUCEApplicationBase::main () at ../../../../modules/juce_events/messages/juce_ApplicationBase.cpp:265
libraryInitialiser = {<No data fields>}
app = std::unique_ptr<juce::JUCEApplicationBase> = {get() = 0x5555564d12c0}
#46 0x0000555555b0f430 in juce::JUCEApplicationBase::main (argc=2, argv=0x7fffffffd218) at ../../../../modules/juce_events/messages/juce_ApplicationBase.cpp:243
No locals.
#47 0x0000555555702812 in main (argc=2, argv=0x7fffffffd218) at ../../Source/HostStartup.cpp:393
No locals.