https://bugs.kde.org/show_bug.cgi?id=389750
Bug ID: 389750 Summary: Kdevelop crash after connection to openocd Product: kdevelop Version: 5.2.1 Platform: Archlinux Packages OS: Linux Status: UNCONFIRMED Keywords: drkonqi Severity: crash Priority: NOR Component: general Assignee: kdevelop-bugs-n...@kde.org Reporter: mohamedayman.f...@zoho.com Target Milestone: --- Application: kdevelop (5.2.1) Qt Version: 5.10.0 Frameworks Version: 5.42.0 Operating System: Linux 4.9.78-1-MANJARO x86_64 Distribution: "Manjaro Linux" -- Information about the crash: after connected to openocd that's connect to ARM based microchip it shows me: `The debugger component encountered internal error while processing reply from gdb. Please submit a bug report. The debug session will now end to prevent potential crash` then KDevelop crash. my gdb script: `shell sleep 2 file <filename>.elf target remote :3333 break main set remote hardware-breakpoint-limit 6 set remote hardware-watchpoint-limit 4 monitor reset halt load monitor reset halt continue` The crash can be reproduced every time. -- Backtrace: Application: KDevelop (kdevelop), signal: Segmentation fault Using host libthread_db library "/usr/lib/libthread_db.so.1". [Current thread is 1 (Thread 0x7fe39d440d80 (LWP 26930))] Thread 15 (Thread 0x7fe31affd700 (LWP 27062)): #0 0x00007fe3931203bd in pthread_cond_wait@@GLIBC_2.3.2 () at /usr/lib/libpthread.so.0 #1 0x00007fe39a18000c in QWaitCondition::wait(QMutex*, unsigned long) () at /usr/lib/libQt5Core.so.5 #2 0x00007fe38eb1342f in ThreadWeaver::Weaver::takeFirstAvailableJobOrSuspendOrWait(ThreadWeaver::Thread*, bool, bool, bool) () at /usr/lib/libKF5ThreadWeaver.so.5 #3 0x00007fe38eb18479 in () at /usr/lib/libKF5ThreadWeaver.so.5 #4 0x00007fe38eb12924 in ThreadWeaver::Weaver::applyForWork(ThreadWeaver::Thread*, bool) () at /usr/lib/libKF5ThreadWeaver.so.5 #5 0x00007fe38eb184d2 in () at /usr/lib/libKF5ThreadWeaver.so.5 #6 0x00007fe38eb12924 in ThreadWeaver::Weaver::applyForWork(ThreadWeaver::Thread*, bool) () at /usr/lib/libKF5ThreadWeaver.so.5 #7 0x00007fe38eb15c83 in ThreadWeaver::Thread::run() () at /usr/lib/libKF5ThreadWeaver.so.5 #8 0x00007fe39a17eb2d in () at /usr/lib/libQt5Core.so.5 #9 0x00007fe39311a08c in start_thread () at /usr/lib/libpthread.so.0 #10 0x00007fe399a86e7f in clone () at /usr/lib/libc.so.6 Thread 14 (Thread 0x7fe31b7fe700 (LWP 27061)): #0 0x00007fe3931203bd in pthread_cond_wait@@GLIBC_2.3.2 () at /usr/lib/libpthread.so.0 #1 0x00007fe39a18000c in QWaitCondition::wait(QMutex*, unsigned long) () at /usr/lib/libQt5Core.so.5 #2 0x00007fe38eb1342f in ThreadWeaver::Weaver::takeFirstAvailableJobOrSuspendOrWait(ThreadWeaver::Thread*, bool, bool, bool) () at /usr/lib/libKF5ThreadWeaver.so.5 #3 0x00007fe38eb18479 in () at /usr/lib/libKF5ThreadWeaver.so.5 #4 0x00007fe38eb12924 in ThreadWeaver::Weaver::applyForWork(ThreadWeaver::Thread*, bool) () at /usr/lib/libKF5ThreadWeaver.so.5 #5 0x00007fe38eb184d2 in () at /usr/lib/libKF5ThreadWeaver.so.5 #6 0x00007fe38eb12924 in ThreadWeaver::Weaver::applyForWork(ThreadWeaver::Thread*, bool) () at /usr/lib/libKF5ThreadWeaver.so.5 #7 0x00007fe38eb184d2 in () at /usr/lib/libKF5ThreadWeaver.so.5 #8 0x00007fe38eb12924 in ThreadWeaver::Weaver::applyForWork(ThreadWeaver::Thread*, bool) () at /usr/lib/libKF5ThreadWeaver.so.5 #9 0x00007fe38eb184d2 in () at /usr/lib/libKF5ThreadWeaver.so.5 #10 0x00007fe38eb12924 in ThreadWeaver::Weaver::applyForWork(ThreadWeaver::Thread*, bool) () at /usr/lib/libKF5ThreadWeaver.so.5 #11 0x00007fe38eb184d2 in () at /usr/lib/libKF5ThreadWeaver.so.5 #12 0x00007fe38eb12924 in ThreadWeaver::Weaver::applyForWork(ThreadWeaver::Thread*, bool) () at /usr/lib/libKF5ThreadWeaver.so.5 #13 0x00007fe38eb184d2 in () at /usr/lib/libKF5ThreadWeaver.so.5 #14 0x00007fe38eb12924 in ThreadWeaver::Weaver::applyForWork(ThreadWeaver::Thread*, bool) () at /usr/lib/libKF5ThreadWeaver.so.5 #15 0x00007fe38eb15c83 in ThreadWeaver::Thread::run() () at /usr/lib/libKF5ThreadWeaver.so.5 #16 0x00007fe39a17eb2d in () at /usr/lib/libQt5Core.so.5 #17 0x00007fe39311a08c in start_thread () at /usr/lib/libpthread.so.0 #18 0x00007fe399a86e7f in clone () at /usr/lib/libc.so.6 Thread 13 (Thread 0x7fe31bfff700 (LWP 27060)): #0 0x00007fe3931203bd in pthread_cond_wait@@GLIBC_2.3.2 () at /usr/lib/libpthread.so.0 #1 0x00007fe39a18000c in QWaitCondition::wait(QMutex*, unsigned long) () at /usr/lib/libQt5Core.so.5 #2 0x00007fe38eb1342f in ThreadWeaver::Weaver::takeFirstAvailableJobOrSuspendOrWait(ThreadWeaver::Thread*, bool, bool, bool) () at /usr/lib/libKF5ThreadWeaver.so.5 #3 0x00007fe38eb18479 in () at /usr/lib/libKF5ThreadWeaver.so.5 #4 0x00007fe38eb12924 in ThreadWeaver::Weaver::applyForWork(ThreadWeaver::Thread*, bool) () at /usr/lib/libKF5ThreadWeaver.so.5 #5 0x00007fe38eb184d2 in () at /usr/lib/libKF5ThreadWeaver.so.5 #6 0x00007fe38eb12924 in ThreadWeaver::Weaver::applyForWork(ThreadWeaver::Thread*, bool) () at /usr/lib/libKF5ThreadWeaver.so.5 #7 0x00007fe38eb184d2 in () at /usr/lib/libKF5ThreadWeaver.so.5 #8 0x00007fe38eb12924 in ThreadWeaver::Weaver::applyForWork(ThreadWeaver::Thread*, bool) () at /usr/lib/libKF5ThreadWeaver.so.5 #9 0x00007fe38eb15c83 in ThreadWeaver::Thread::run() () at /usr/lib/libKF5ThreadWeaver.so.5 #10 0x00007fe39a17eb2d in () at /usr/lib/libQt5Core.so.5 #11 0x00007fe39311a08c in start_thread () at /usr/lib/libpthread.so.0 #12 0x00007fe399a86e7f in clone () at /usr/lib/libc.so.6 Thread 12 (Thread 0x7fe328df3700 (LWP 27059)): #0 0x00007fe3931203bd in pthread_cond_wait@@GLIBC_2.3.2 () at /usr/lib/libpthread.so.0 #1 0x00007fe39a18000c in QWaitCondition::wait(QMutex*, unsigned long) () at /usr/lib/libQt5Core.so.5 #2 0x00007fe38eb1342f in ThreadWeaver::Weaver::takeFirstAvailableJobOrSuspendOrWait(ThreadWeaver::Thread*, bool, bool, bool) () at /usr/lib/libKF5ThreadWeaver.so.5 #3 0x00007fe38eb18479 in () at /usr/lib/libKF5ThreadWeaver.so.5 #4 0x00007fe38eb12924 in ThreadWeaver::Weaver::applyForWork(ThreadWeaver::Thread*, bool) () at /usr/lib/libKF5ThreadWeaver.so.5 #5 0x00007fe38eb184d2 in () at /usr/lib/libKF5ThreadWeaver.so.5 #6 0x00007fe38eb12924 in ThreadWeaver::Weaver::applyForWork(ThreadWeaver::Thread*, bool) () at /usr/lib/libKF5ThreadWeaver.so.5 #7 0x00007fe38eb184d2 in () at /usr/lib/libKF5ThreadWeaver.so.5 #8 0x00007fe38eb12924 in ThreadWeaver::Weaver::applyForWork(ThreadWeaver::Thread*, bool) () at /usr/lib/libKF5ThreadWeaver.so.5 #9 0x00007fe38eb15c83 in ThreadWeaver::Thread::run() () at /usr/lib/libKF5ThreadWeaver.so.5 #10 0x00007fe39a17eb2d in () at /usr/lib/libQt5Core.so.5 #11 0x00007fe39311a08c in start_thread () at /usr/lib/libpthread.so.0 #12 0x00007fe399a86e7f in clone () at /usr/lib/libc.so.6 Thread 11 (Thread 0x7fe3295f4700 (LWP 27058)): #0 0x00007fe3931203bd in pthread_cond_wait@@GLIBC_2.3.2 () at /usr/lib/libpthread.so.0 #1 0x00007fe39a18000c in QWaitCondition::wait(QMutex*, unsigned long) () at /usr/lib/libQt5Core.so.5 #2 0x00007fe38eb1342f in ThreadWeaver::Weaver::takeFirstAvailableJobOrSuspendOrWait(ThreadWeaver::Thread*, bool, bool, bool) () at /usr/lib/libKF5ThreadWeaver.so.5 #3 0x00007fe38eb18479 in () at /usr/lib/libKF5ThreadWeaver.so.5 #4 0x00007fe38eb12924 in ThreadWeaver::Weaver::applyForWork(ThreadWeaver::Thread*, bool) () at /usr/lib/libKF5ThreadWeaver.so.5 #5 0x00007fe38eb15c83 in ThreadWeaver::Thread::run() () at /usr/lib/libKF5ThreadWeaver.so.5 #6 0x00007fe39a17eb2d in () at /usr/lib/libQt5Core.so.5 #7 0x00007fe39311a08c in start_thread () at /usr/lib/libpthread.so.0 #8 0x00007fe399a86e7f in clone () at /usr/lib/libc.so.6 Thread 10 (Thread 0x7fe32a5f6700 (LWP 26987)): #0 0x00007fe399a7c97b in poll () at /usr/lib/libc.so.6 #1 0x00007fe390543ff3 in () at /usr/lib/libglib-2.0.so.0 #2 0x00007fe39054410e in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0 #3 0x00007fe39a3c7b94 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5 #4 0x00007fe39a369d0b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5 #5 0x00007fe39a17978e in QThread::exec() () at /usr/lib/libQt5Core.so.5 #6 0x00007fe32afc4b6a in () at /usr/lib/qt/qml/QtQuick/XmlListModel/libqmlxmllistmodelplugin.so #7 0x00007fe39a17eb2d in () at /usr/lib/libQt5Core.so.5 #8 0x00007fe39311a08c in start_thread () at /usr/lib/libpthread.so.0 #9 0x00007fe399a86e7f in clone () at /usr/lib/libc.so.6 Thread 9 (Thread 0x7fe34677c700 (LWP 26955)): #0 0x00007fe399a7c97b in poll () at /usr/lib/libc.so.6 #1 0x00007fe390543ff3 in () at /usr/lib/libglib-2.0.so.0 #2 0x00007fe39054410e in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0 #3 0x00007fe39a3c7b94 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5 #4 0x00007fe39a369d0b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5 #5 0x00007fe39a17978e in QThread::exec() () at /usr/lib/libQt5Core.so.5 #6 0x00007fe397c7f422 in () at /usr/lib/libKDevPlatformLanguage.so.52 #7 0x00007fe39a17eb2d in () at /usr/lib/libQt5Core.so.5 #8 0x00007fe39311a08c in start_thread () at /usr/lib/libpthread.so.0 #9 0x00007fe399a86e7f in clone () at /usr/lib/libc.so.6 Thread 8 (Thread 0x7fe345f7b700 (LWP 26954)): #0 0x00007fe3931203bd in pthread_cond_wait@@GLIBC_2.3.2 () at /usr/lib/libpthread.so.0 #1 0x00007fe399dfb5bd in __gthread_cond_wait (__mutex=<optimized out>, __cond=<optimized out>) at /build/gcc/src/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/include/x86_64-pc-linux-gnu/bits/gthr-default.h:864 #2 0x00007fe399dfb5bd in std::condition_variable::wait(std::unique_lock<std::mutex>&) (this=<optimized out>, __lock=...) at /build/gcc/src/gcc/libstdc++-v3/src/c++11/condition_variable.cc:53 #3 0x00007fe33750faa9 in () at /usr/lib/libQt5WebKit.so.5 #4 0x00007fe33750fbf9 in () at /usr/lib/libQt5WebKit.so.5 #5 0x00007fe399e01b9f in std::execute_native_thread_routine(void*) (__p=0x55d88d064930) at /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:83 #6 0x00007fe39311a08c in start_thread () at /usr/lib/libpthread.so.0 #7 0x00007fe399a86e7f in clone () at /usr/lib/libc.so.6 Thread 7 (Thread 0x7fe347b42700 (LWP 26946)): #0 0x00007fe39058ab79 in g_mutex_lock () at /usr/lib/libglib-2.0.so.0 #1 0x00007fe390543fd8 in () at /usr/lib/libglib-2.0.so.0 #2 0x00007fe39054410e in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0 #3 0x00007fe39a3c7b94 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5 #4 0x00007fe39a369d0b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5 #5 0x00007fe39a17978e in QThread::exec() () at /usr/lib/libQt5Core.so.5 #6 0x00007fe39a17eb2d in () at /usr/lib/libQt5Core.so.5 #7 0x00007fe39311a08c in start_thread () at /usr/lib/libpthread.so.0 #8 0x00007fe399a86e7f in clone () at /usr/lib/libc.so.6 Thread 6 (Thread 0x7fe352ac6700 (LWP 26936)): #0 0x00007fe399a7c97b in poll () at /usr/lib/libc.so.6 #1 0x00007fe390543ff3 in () at /usr/lib/libglib-2.0.so.0 #2 0x00007fe39054410e in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0 #3 0x00007fe39a3c7b94 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5 #4 0x00007fe39a369d0b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5 #5 0x00007fe39a17978e in QThread::exec() () at /usr/lib/libQt5Core.so.5 #6 0x00007fe392b9ba19 in () at /usr/lib/libQt5Qml.so.5 #7 0x00007fe39a17eb2d in () at /usr/lib/libQt5Core.so.5 #8 0x00007fe39311a08c in start_thread () at /usr/lib/libpthread.so.0 #9 0x00007fe399a86e7f in clone () at /usr/lib/libc.so.6 Thread 5 (Thread 0x7fe359484700 (LWP 26934)): #0 0x00007fe390544120 in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0 #1 0x00007fe39a3c7b94 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5 #2 0x00007fe39a369d0b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5 #3 0x00007fe39a17978e in QThread::exec() () at /usr/lib/libQt5Core.so.5 #4 0x00007fe39a17eb2d in () at /usr/lib/libQt5Core.so.5 #5 0x00007fe39311a08c in start_thread () at /usr/lib/libpthread.so.0 #6 0x00007fe399a86e7f in clone () at /usr/lib/libc.so.6 Thread 4 (Thread 0x7fe35aa06700 (LWP 26933)): #0 0x00007fe390543b77 in g_main_context_dispatch () at /usr/lib/libglib-2.0.so.0 #1 0x00007fe390544081 in () at /usr/lib/libglib-2.0.so.0 #2 0x00007fe39054410e in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0 #3 0x00007fe39a3c7b94 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5 #4 0x00007fe39a369d0b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5 #5 0x00007fe39a17978e in QThread::exec() () at /usr/lib/libQt5Core.so.5 #6 0x00007fe397b68a21 in () at /usr/lib/libKDevPlatformLanguage.so.52 #7 0x00007fe39a17eb2d in () at /usr/lib/libQt5Core.so.5 #8 0x00007fe39311a08c in start_thread () at /usr/lib/libpthread.so.0 #9 0x00007fe399a86e7f in clone () at /usr/lib/libc.so.6 Thread 3 (Thread 0x7fe365aac700 (LWP 26932)): #0 0x00007fe399a7c97b in poll () at /usr/lib/libc.so.6 #1 0x00007fe390543ff3 in () at /usr/lib/libglib-2.0.so.0 #2 0x00007fe39054410e in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0 #3 0x00007fe39a3c7b94 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5 #4 0x00007fe39a369d0b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5 #5 0x00007fe39a17978e in QThread::exec() () at /usr/lib/libQt5Core.so.5 #6 0x00007fe39c10b416 in () at /usr/lib/libQt5DBus.so.5 #7 0x00007fe39a17eb2d in () at /usr/lib/libQt5Core.so.5 #8 0x00007fe39311a08c in start_thread () at /usr/lib/libpthread.so.0 #9 0x00007fe399a86e7f in clone () at /usr/lib/libc.so.6 Thread 2 (Thread 0x7fe36edc1700 (LWP 26931)): #0 0x00007fe399a7c97b in poll () at /usr/lib/libc.so.6 #1 0x00007fe3859408e0 in () at /usr/lib/libxcb.so.1 #2 0x00007fe385942679 in xcb_wait_for_event () at /usr/lib/libxcb.so.1 #3 0x00007fe3712dc7aa in () at /usr/lib/libQt5XcbQpa.so.5 #4 0x00007fe39a17eb2d in () at /usr/lib/libQt5Core.so.5 #5 0x00007fe39311a08c in start_thread () at /usr/lib/libpthread.so.0 #6 0x00007fe399a86e7f in clone () at /usr/lib/libc.so.6 Thread 1 (Thread 0x7fe39d440d80 (LWP 26930)): [KCrash Handler] #5 0x00007fe398dabf75 in KDevelop::FramestackWidget::currentFrameChanged(int) () at /usr/lib/libKDevPlatformDebugger.so.52 #6 0x00007fe39a39c00f in QMetaObject::activate(QObject*, int, int, void**) () at /usr/lib/libQt5Core.so.5 #7 0x00007fe398dae112 in KDevelop::IFrameStackModel::currentFrameChanged(int) () at /usr/lib/libKDevPlatformDebugger.so.52 #8 0x00007fe398da7c53 in KDevelop::FrameStackModel::setCurrentThread(int) () at /usr/lib/libKDevPlatformDebugger.so.52 #9 0x00007fe33eb65573 in KDevMI::MIFrameStackModel::handleThreadInfo(KDevMI::MI::ResultRecord const&) () at /usr/lib/qt/plugins/kdevplatform/30/kdevgdb.so #10 0x00007fe33eb44f45 in KDevMI::MI::MICommand::invokeHandler(KDevMI::MI::ResultRecord const&) () at /usr/lib/qt/plugins/kdevplatform/30/kdevgdb.so #11 0x00007fe33eb49426 in KDevMI::MIDebugger::processLine(QByteArray const&) () at /usr/lib/qt/plugins/kdevplatform/30/kdevgdb.so #12 0x00007fe33eb4a6f4 in KDevMI::MIDebugger::readyReadStandardOutput() () at /usr/lib/qt/plugins/kdevplatform/30/kdevgdb.so #13 0x00007fe39a39c00f in QMetaObject::activate(QObject*, int, int, void**) () at /usr/lib/libQt5Core.so.5 #14 0x00007fe39a2e461b in QProcess::readyReadStandardOutput(QProcess::QPrivateSignal) () at /usr/lib/libQt5Core.so.5 #15 0x00007fe39a2eb33a in () at /usr/lib/libQt5Core.so.5 #16 0x00007fe39a2eb820 in () at /usr/lib/libQt5Core.so.5 #17 0x00007fe39a39bee6 in QMetaObject::activate(QObject*, int, int, void**) () at /usr/lib/libQt5Core.so.5 #18 0x00007fe39a3a8829 in QSocketNotifier::activated(int, QSocketNotifier::QPrivateSignal) () at /usr/lib/libQt5Core.so.5 #19 0x00007fe39a3a8c04 in QSocketNotifier::event(QEvent*) () at /usr/lib/libQt5Core.so.5 #20 0x00007fe39b0e5e3c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib/libQt5Widgets.so.5 #21 0x00007fe39b0ed816 in QApplication::notify(QObject*, QEvent*) () at /usr/lib/libQt5Widgets.so.5 #22 0x00007fe39a36b6c0 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib/libQt5Core.so.5 #23 0x00007fe39a3c880e in () at /usr/lib/libQt5Core.so.5 #24 0x00007fe390543e38 in g_main_context_dispatch () at /usr/lib/libglib-2.0.so.0 #25 0x00007fe390544081 in () at /usr/lib/libglib-2.0.so.0 #26 0x00007fe39054410e in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0 #27 0x00007fe39a3c7b71 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5 #28 0x00007fe3713642f2 in () at /usr/lib/libQt5XcbQpa.so.5 #29 0x00007fe39a369d0b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5 #30 0x00007fe39a372ff8 in QCoreApplication::exec() () at /usr/lib/libQt5Core.so.5 #31 0x000055d88c2e3a3c in () #32 0x00007fe3999b1f4a in __libc_start_main () at /usr/lib/libc.so.6 #33 0x000055d88c2e3fea in _start () Reported using DrKonqi -- You are receiving this mail because: You are watching all bug changes.