GNU gdb (GDB) 8.1 Copyright (C) 2018 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "x86_64-pc-linux-gnu". Type "show configuration" for configuration details. For bug reporting instructions, please see: . Find the GDB manual and other documentation resources online at: . For help, type "help". Type "apropos word" to search for commands related to "word"... Reading symbols from build/midinote_basic_synth...done. (gdb) break juce_Button.cpp:238 bBreakpoint 1 at 0x3b40d9: file ../../../JUCE/modules/juce_gui_basics/buttons/juce_Button.cpp, line 238. (gdb) run Starting program: /home/jimi/Work/Programs/Midinote/juce-dev/midinote_basic/Builds/LinuxMakefile/build/midinote_basic_synth [Thread debugging using libthread_db enabled] Using host libthread_db library "/usr/lib/libthread_db.so.1". [New Thread 0x7fffdfa07700 (LWP 29114)] JUCE v5.3.0 [New Thread 0x7fffdee2d700 (LWP 29123)] [Thread 0x7fffdee2d700 (LWP 29123) exited] JUCE Assertion failure in juce_Component.cpp:2766 Thread 1 "midinote_basic_" received signal SIGTRAP, Trace/breakpoint trap. 0x00007fffef739b47 in kill () from /usr/lib/libc.so.6 (gdb) cont Continuing. [New Thread 0x7fffdee2d700 (LWP 29186)] [New Thread 0x7fffdd17f700 (LWP 29187)] [Thread 0x7fffdd17f700 (LWP 29187) exited] [New Thread 0x7fffdd17f700 (LWP 29188)] [Thread 0x7fffdd17f700 (LWP 29188) exited] [New Thread 0x7fffdd17f700 (LWP 29189)] [New Thread 0x7fffdc97e700 (LWP 29190)] [New Thread 0x7fffaffff700 (LWP 29191)] [New Thread 0x7fffaf7fe700 (LWP 29192)] Thread 1 "midinote_basic_" hit Breakpoint 1, juce::Button::turnOffOtherButtonsInGroup (this=0x5555561ce978, notification=juce::sendNotification) at ../../../JUCE/modules/juce_gui_basics/buttons/juce_Button.cpp:238 238 b->setToggleState (false, notification); (gdb) p p // parent component $1 = (juce::Component *) 0x555556194770 (gdb) p p->buttons[0] // the button that refuses to toggle off There is no member or method named buttons. (gdb) p static_cast(p)->buttons[0] $2 = { = { = { = { _vptr.MouseListener = 0x55555613b518 }, static currentlyFocusedComponent = 0x5555561ce978, componentName = { static empty = { static empty = , text = {data = 0x555555d6e220 ""}}, text = { data = 0x555555d6e220 ""}}, componentID = { static empty = { static empty = , text = {data = 0x555555d6e220 ""}}, text = { data = 0x555555d6e220 ""}}, parentComponent = 0x555556194770, boundsRelativeToParent = {pos = { x = 0, y = 0}, w = 90, h = 20}, positioner = {object = 0x0}, affineTransform = {Python Exception maximum recursion depth exceeded while getting the str of an object: object = 0x0}, childComponentList = { data = { = {}, elements = { data = 0x0}, numAllocated = 0}, numUsed = 0}, lookAndFeel = { holder = {referencedObject = 0x0}}, cursor = {cursorHandle = 0x0, leakDetector181 = {}}, effect = 0x0, cachedImage = { object = 0x0}, mouseListeners = {object = 0x0}, keyListeners = { object = 0x0}, componentListeners = {listeners = { data = { = {}, elements = {data = 0x0}, numAllocated = 0}, numUsed = 0}}, properties = {values = { data = { = {}, elements = {Python Exception maximum recursion depth exceeded while getting the str of an object: data = 0x5555561d0790}, numAllocated = 8}, numUsed = 2}}, masterReference = {sharedPointer = { referencedObject = 0x5555561d0720}}, {componentFlags = 34, flags = { hasHeavyweightPeerFlag = false, visibleFlag = true, opaqueFlag = false, ignoresMouseClicksFlag = false, allowChildMouseClicksFlag = false, wantsFocusFlag = true, isFocusContainerFlag = false, dontFocusOnMouseClickFlag = false, alwaysOnTopFlag = false, bufferToImageFlag = false, bringToFrontOnClickFlag = false, repaintOnMouseActivityFlag = false, isDisabledFlag = false, childCompFocusedFlag = false, dontClipGraphicsFlag = false, mouseDownWasBlocked = false, isMoveCallbackPending = false, isResizeCallbackPending = false, viewportIgnoreDragFlag = false, isInsidePaintCall = false}}, ---Type to continue, or q to quit--- componentTransparency = 0 '\000', leakDetector2367 = {}}, = { = { _vptr.TooltipClient = 0x55555613b6d0 }, tooltipString = {static empty = { static empty = , text = {data = 0x555555d6e220 ""}}, text = { data = 0x555555d6e220 ""}}}, onClick = {> = {}, = {static _M_max_size = 16, static _M_max_align = 8, _M_functor = {_M_unused = {_M_object = 0x0, _M_const_object = 0x0, _M_function_pointer = 0x0, _M_member_pointer = NULL}, _M_pod_data = '\000' }, _M_manager = 0x0}, _M_invoker = 0x0}, onStateChange = {> = {}, = {static _M_max_size = 16, static _M_max_align = 8, _M_functor = {_M_unused = {_M_object = 0x0, _M_const_object = 0x0, _M_function_pointer = 0x0, _M_member_pointer = NULL}, _M_pod_data = '\000' }, _M_manager = 0x0}, _M_invoker = 0x0}, shortcuts = { data = { = {}, elements = { data = 0x0}, numAllocated = 0}, numUsed = 0}, keySource = {holder = { referencedObject = 0x0}}, text = {static empty = { static empty = , text = {data = 0x555555d6e220 ""}}, text = { data = 0x555555d6e220 ""}}, buttonListeners = { listeners = {data = { = {}, elements = {data = 0x555556226350}, numAllocated = 8}, numUsed = 2}}, callbackHelper = {object = 0x5555561cef80}, buttonPressTime = 0, lastRepeatTime = 0, commandManagerToUse = 0x0, autoRepeatDelay = -1, autoRepeatSpeed = 0, autoRepeatMinimumDelay = -1, radioGroupId = 2, connectedEdgeFlags = 0, commandID = 0, buttonState = juce::Button::buttonNormal, lastStatePainted = juce::Button::buttonNormal, isOn = {value = { referencedObject = 0x5555561ceee0}, listeners = {listeners = { data = { = {}, ---Type to continue, or q to quit--- elements = {data = 0x5555561cf020}, numAllocated = 8}, numUsed = 1}}}, lastToggleState = true, clickTogglesState = true, needsToRelease = false, needsRepainting = false, isKeyDown = false, triggerOnMouseDown = false, generateTooltip = false, leakDetector520 = {}}, leakDetector88 = {}} // here are all of the buttons' addresses (gdb) p &(static_cast(p)->buttons[0]) // the button that refuses to toggle off $3 = (juce::ToggleButton *) 0x5555561ce7b0 (gdb) p this // I stupidly forgot I should actually be investigating the button b, not the current scoped button; I do it right a little later $4 = (juce::Button * const) 0x5555561ce978 (gdb) p &(static_cast(p)->buttons[1]) $5 = (juce::ToggleButton *) 0x5555561ce978 (gdb) p &(static_cast(p)->buttons[2]) $6 = (juce::ToggleButton *) 0x5555561ceb40 (gdb) p &(static_cast(p)->buttons[3]) $7 = (juce::ToggleButton *) 0x5555561ced08 (gdb) c Continuing. Thread 1 "midinote_basic_" hit Breakpoint 1, juce::Button::turnOffOtherButtonsInGroup (this=0x5555561ce7b0, notification=juce::dontSendNotification) at ../../../JUCE/modules/juce_gui_basics/buttons/juce_Button.cpp:238 238 b->setToggleState (false, notification); (gdb) p this $8 = (juce::Button * const) 0x5555561ce7b0 // buttons[0] (gdb) s juce::Button::setToggleState (this=0x5555561ce978, shouldBeOn=false, notification=juce::dontSendNotification) at ../../../JUCE/modules/juce_gui_basics/buttons/juce_Button.cpp:146 146 { (gdb) cont Continuing. Thread 1 "midinote_basic_" hit Breakpoint 1, juce::Button::turnOffOtherButtonsInGroup (this=0x5555561ce7b0, notification=juce::dontSendNotification) at ../../../JUCE/modules/juce_gui_basics/buttons/juce_Button.cpp:238 238 b->setToggleState (false, notification); (gdb) cont Continuing. Thread 1 "midinote_basic_" hit Breakpoint 1, juce::Button::turnOffOtherButtonsInGroup (this=0x5555561ce7b0, notification=juce::dontSendNotification) at ../../../JUCE/modules/juce_gui_basics/buttons/juce_Button.cpp:238 238 b->setToggleState (false, notification); (gdb) cont Continuing. Thread 1 "midinote_basic_" hit Breakpoint 1, juce::Button::turnOffOtherButtonsInGroup (this=0x5555561ce978, notification=juce::sendNotification) at ../../../JUCE/modules/juce_gui_basics/buttons/juce_Button.cpp:238 238 b->setToggleState (false, notification); (gdb) c Continuing. Thread 1 "midinote_basic_" hit Breakpoint 1, juce::Button::turnOffOtherButtonsInGroup (this=0x5555561ce978, notification=juce::sendNotification) at ../../../JUCE/modules/juce_gui_basics/buttons/juce_Button.cpp:238 238 b->setToggleState (false, notification); (gdb) c Continuing. Thread 1 "midinote_basic_" hit Breakpoint 1, juce::Button::turnOffOtherButtonsInGroup (this=0x5555561ced08, notification=juce::sendNotification) at ../../../JUCE/modules/juce_gui_basics/buttons/juce_Button.cpp:238 238 b->setToggleState (false, notification); (gdb) p b $9 = (juce::Button *) 0x5555561ce7b0 // buttons[0] (gdb) step juce::Button::setToggleState (this=0x5555561ce7b0, shouldBeOn=false, notification=juce::sendNotification) at ../../../JUCE/modules/juce_gui_basics/buttons/juce_Button.cpp:146 146 { (gdb) n 147 if (shouldBeOn != lastToggleState) (gdb) p lastToggleState $10 = true (gdb) n 149 WeakReference deletionWatcher (this); (gdb) n 151 if (shouldBeOn) (gdb) n 161 if (getToggleState() != shouldBeOn) (gdb) p getToggleState() $11 = true (gdb) n 163 isOn = shouldBeOn; (gdb) p isOn $12 = {value = {referencedObject = 0x5555561ceee0}, listeners = {listeners = { data = { = {}, elements = { data = 0x5555561cf020}, numAllocated = 8}, numUsed = 1}}} (gdb) p shouldBeOn $13 = false (gdb) n 165 if (deletionWatcher == nullptr) (gdb) p isOn $14 = {value = {referencedObject = 0x5555561ceee0}, listeners = {listeners = { data = { = {}, elements = { data = 0x5555561cf020}, numAllocated = 8}, numUsed = 1}}} (gdb) n 169 lastToggleState = shouldBeOn; (gdb) p lastToggleState $15 = true // At this point, I checked the GUI window to see if buttons[0] was toggled off. It was still on. (gdb) n 170 repaint(); (gdb) p lastToggleState $16 = false (gdb) n 172 if (notification != dontSendNotification) (gdb) n 175 jassert (notification != sendNotificationAsync); (gdb) n [Switching to Thread 0x7fffaffff700 (LWP 29191)] // I checked again to see if buttons[0] was toggled off. It was still on. Thread 9 "JUCE ALSA" hit Breakpoint 1, juce::Button::turnOffOtherButtonsInGroup (this=0x5555561ce7b0, notification=juce::dontSendNotification) at ../../../JUCE/modules/juce_gui_basics/buttons/juce_Button.cpp:238 238 b->setToggleState (false, notification); (gdb) p b $17 = (juce::Button *) 0x5555561ce978 // buttons[1] (does toggle off properly) (gdb) p b->isOn $18 = {value = {referencedObject = 0x5555561cf070}, listeners = {listeners = { data = { = {}, elements = { data = 0x5555561cf1b0}, numAllocated = 8}, numUsed = 1}}} // At this point I started trying to read the Value class, ran out of time, and gave up. The rest of this log is basically just me exiting the program. (gdb) cont Continuing. JUCE Assertion failure in juce_Component.cpp:1824 [Switching to Thread 0x7ffff7f71a00 (LWP 29104)] Thread 1 "midinote_basic_" hit Breakpoint 1, juce::Button::turnOffOtherButtonsInGroup (this=0x5555561ce7b0, notification=juce::dontSendNotification) at ../../../JUCE/modules/juce_gui_basics/buttons/juce_Button.cpp:238 238 b->setToggleState (false, notification); (gdb) cont Continuing. JUCE Assertion failure in juce_Component.cpp:1824 JUCE Assertion failure in juce_Component.cpp:1824 Thread 2 "midinote_basic_" received signal SIGTRAP, Trace/breakpoint trap. [Switching to Thread 0x7fffdfa07700 (LWP 29114)] 0x00007ffff05bb3bd in pthread_cond_wait@@GLIBC_2.3.2 () from /usr/lib/libpthread.so.0 (gdb) cont Continuing. Thread 4 "JUCE MIDI Input" received signal SIGTRAP, Trace/breakpoint trap. [Switching to Thread 0x7fffdee2d700 (LWP 29186)] 0x00007fffef7f097b in poll () from /usr/lib/libc.so.6 (gdb) cont Continuing. Thread 9 "JUCE ALSA" received signal SIGTRAP, Trace/breakpoint trap. [Switching to Thread 0x7fffaffff700 (LWP 29191)] 0x00007fffef739b47 in kill () from /usr/lib/libc.so.6 (gdb) cont Continuing. [Switching to Thread 0x7ffff7f71a00 (LWP 29104)] Thread 1 "midinote_basic_" hit Breakpoint 1, juce::Button::turnOffOtherButtonsInGroup (this=0x5555561ce7b0, notification=juce::dontSendNotification) at ../../../JUCE/modules/juce_gui_basics/buttons/juce_Button.cpp:238 238 b->setToggleState (false, notification); (gdb) cont Continuing. JUCE Assertion failure in juce_Component.cpp:1824 Thread 1 "midinote_basic_" hit Breakpoint 1, juce::Button::turnOffOtherButtonsInGroup (this=0x5555561ce7b0, notification=juce::dontSendNotification) at ../../../JUCE/modules/juce_gui_basics/buttons/juce_Button.cpp:238 238 b->setToggleState (false, notification); (gdb) c Continuing. Thread 9 "JUCE ALSA" received signal SIGTRAP, Trace/breakpoint trap. [Switching to Thread 0x7fffaffff700 (LWP 29191)] 0x00007fffef739b47 in kill () from /usr/lib/libc.so.6 (gdb) c Continuing. JUCE Assertion failure in juce_Component.cpp:1824 [Switching to Thread 0x7ffff7f71a00 (LWP 29104)] Thread 1 "midinote_basic_" hit Breakpoint 1, juce::Button::turnOffOtherButtonsInGroup (this=0x5555561ced08, notification=juce::sendNotification) at ../../../JUCE/modules/juce_gui_basics/buttons/juce_Button.cpp:238 238 b->setToggleState (false, notification); (gdb) c Continuing. Thread 9 "JUCE ALSA" received signal SIGTRAP, Trace/breakpoint trap. [Switching to Thread 0x7fffaffff700 (LWP 29191)] 0x00007fffef739b47 in kill () from /usr/lib/libc.so.6 (gdb) c Continuing. [Switching to Thread 0x7ffff7f71a00 (LWP 29104)] Thread 1 "midinote_basic_" hit Breakpoint 1, juce::Button::turnOffOtherButtonsInGroup (this=0x5555561ced08, notification=juce::sendNotification) at ../../../JUCE/modules/juce_gui_basics/buttons/juce_Button.cpp:238 238 b->setToggleState (false, notification); (gdb) c Continuing. [Switching to Thread 0x7fffaffff700 (LWP 29191)] Thread 9 "JUCE ALSA" hit Breakpoint 1, juce::Button::turnOffOtherButtonsInGroup (this=0x5555561ce7b0, notification=juce::dontSendNotification) at ../../../JUCE/modules/juce_gui_basics/buttons/juce_Button.cpp:238 238 b->setToggleState (false, notification); (gdb) c Continuing. Thread 9 "JUCE ALSA" hit Breakpoint 1, juce::Button::turnOffOtherButtonsInGroup (this=0x5555561ce7b0, notification=juce::dontSendNotification) at ../../../JUCE/modules/juce_gui_basics/buttons/juce_Button.cpp:238 238 b->setToggleState (false, notification); (gdb) c Continuing. JUCE Assertion failure in juce_Component.cpp:1824 JUCE Assertion failure in juce_Component.cpp:1824 Thread 1 "midinote_basic_" received signal SIGTRAP, Trace/breakpoint trap. [Switching to Thread 0x7ffff7f71a00 (LWP 29104)] 0x00005555558ad402 in juce::Point::operator= (this=0x7fffffffdf68, other=...) at ../../../JUCE/modules/juce_graphics/geometry/juce_Point.h:56 56 Point& operator= (const Point& other) noexcept { x = other.x; y = other.y; return *this; } (gdb) c Continuing. Thread 9 "JUCE ALSA" received signal SIGTRAP, Trace/breakpoint trap. [Switching to Thread 0x7fffaffff700 (LWP 29191)] 0x00007fffef739b47 in kill () from /usr/lib/libc.so.6 (gdb) c Continuing. JUCE Assertion failure in juce_Component.cpp:1824 JUCE Assertion failure in juce_Component.cpp:1824 Thread 1 "midinote_basic_" received signal SIGTRAP, Trace/breakpoint trap. [Switching to Thread 0x7ffff7f71a00 (LWP 29104)] 0x00007ffff05bfa54 in recvmsg () from /usr/lib/libpthread.so.0 (gdb) c Continuing. Thread 9 "JUCE ALSA" received signal SIGTRAP, Trace/breakpoint trap. [Switching to Thread 0x7fffaffff700 (LWP 29191)] 0x00007fffef739b47 in kill () from /usr/lib/libc.so.6 (gdb) c Continuing. JUCE Assertion failure in juce_Component.cpp:1824 JUCE Assertion failure in juce_Component.cpp:1824 Thread 1 "midinote_basic_" received signal SIGTRAP, Trace/breakpoint trap. [Switching to Thread 0x7ffff7f71a00 (LWP 29104)] 0x00007fffef7f097b in poll () from /usr/lib/libc.so.6 (gdb) c Continuing. Thread 9 "JUCE ALSA" received signal SIGTRAP, Trace/breakpoint trap. [Switching to Thread 0x7fffaffff700 (LWP 29191)] 0x00007fffef739b47 in kill () from /usr/lib/libc.so.6 (gdb) c Continuing. JUCE Assertion failure in juce_Component.cpp:1824 JUCE Assertion failure in juce_Component.cpp:1824 Thread 1 "midinote_basic_" received signal SIGTRAP, Trace/breakpoint trap. [Switching to Thread 0x7ffff7f71a00 (LWP 29104)] juce::Rectangle::Rectangle ( this=0x555555a39ef9 >(float, juce::Point)+113>, width=32767, height=-8480) at ../../../JUCE/modules/juce_graphics/geometry/juce_Rectangle.h:66 66 Rectangle (ValueType width, ValueType height) noexcept (gdb) c Continuing. Thread 9 "JUCE ALSA" received signal SIGTRAP, Trace/breakpoint trap. [Switching to Thread 0x7fffaffff700 (LWP 29191)] 0x00007fffef739b47 in kill () from /usr/lib/libc.so.6 (gdb) c Continuing. JUCE Assertion failure in juce_Component.cpp:1824 JUCE Assertion failure in juce_Component.cpp:1824 Thread 1 "midinote_basic_" received signal SIGTRAP, Trace/breakpoint trap. [Switching to Thread 0x7ffff7f71a00 (LWP 29104)] 0x00007ffff05b7579 in __pthread_mutex_lock_full () from /usr/lib/libpthread.so.0 (gdb) c Continuing. Thread 9 "JUCE ALSA" received signal SIGTRAP, Trace/breakpoint trap. [Switching to Thread 0x7fffaffff700 (LWP 29191)] 0x00007fffef739b47 in kill () from /usr/lib/libc.so.6 (gdb) c Continuing. [Thread 0x7fffaffff700 (LWP 29191) exited] [Thread 0x7fffdc97e700 (LWP 29190) exited] [Thread 0x7fffdd17f700 (LWP 29189) exited] Thread 1 "midinote_basic_" received signal SIGSEGV, Segmentation fault. [Switching to Thread 0x7ffff7f71a00 (LWP 29104)] 0x00007ffff05b7322 in __pthread_mutex_lock_full () from /usr/lib/libpthread.so.0 (gdb) c Continuing. Couldn't get registers: No such process. Couldn't get registers: No such process. (gdb) c Continuing. Couldn't get registers: No such process. (gdb) c Continuing. Couldn't get registers: No such process. (gdb) [Thread 0x7fffaf7fe700 (LWP 29192) exited] [Thread 0x7fffdee2d700 (LWP 29186) exited] [Thread 0x7fffdfa07700 (LWP 29114) exited] Program terminated with signal SIGSEGV, Segmentation fault. The program no longer exists. The program is not being run. (gdb) quit