| Summary: | Segfault when mouse over on a typedef | ||
|---|---|---|---|
| Product: | [Applications] kdevelop | Reporter: | TheComet <alex.murray> |
| Component: | Language Support: CPP (Clang-based) | Assignee: | kdevelop-bugs-null |
| Status: | REPORTED --- | ||
| Severity: | normal | CC: | astitcher, deadmaxfr |
| Priority: | NOR | ||
| Version First Reported In: | 5.4.2 | ||
| Target Milestone: | --- | ||
| Platform: | Other | ||
| OS: | Linux | ||
| Latest Commit: | Version Fixed/Implemented In: | ||
| Sentry Crash Report: | |||
| Attachments: | proposed workaround | ||
|
Description
TheComet
2019-09-27 22:21:59 UTC
I can confirm this bug in version 5.4.2 running the distribution packages for Fedora 30.
It is a very annoying bug for my development as our C codebase uses
typedef struct blah blah;
extensively so I have to restart kdevelop frequently!
Please note that the end of the backtrace look like that: #47575 0x00007ffff518bf5e in KDevelop::AbstractDeclarationNavigationContext::declarationSizeInformation(KDevelop::DUChainPointer<KDevelop::Declaration> const&, KDevelop::TopDUContext const*) () at /lib/x86_64-linux-gnu/libKDevPlatformLanguage.so.54 #47576 0x00007ffff518bf5e in KDevelop::AbstractDeclarationNavigationContext::declarationSizeInformation(KDevelop::DUChainPointer<KDevelop::Declaration> const&, KDevelop::TopDUContext const*) () at /lib/x86_64-linux-gnu/libKDevPlatformLanguage.so.54 #47577 0x00007ffff518bf5e in KDevelop::AbstractDeclarationNavigationContext::declarationSizeInformation(KDevelop::DUChainPointer<KDevelop::Declaration> const&, KDevelop::TopDUContext const*) () at /lib/x86_64-linux-gnu/libKDevPlatformLanguage.so.54 #47578 0x00007ffff518bf5e in KDevelop::AbstractDeclarationNavigationContext::declarationSizeInformation(KDevelop::DUChainPointer<KDevelop::Declaration> const&, KDevelop::TopDUContext const*) () at /lib/x86_64-linux-gnu/libKDevPlatformLanguage.so.54 #47579 0x00007ffff518bf5e in KDevelop::AbstractDeclarationNavigationContext::declarationSizeInformation(KDevelop::DUChainPointer<KDevelop::Declaration> const&, KDevelop::TopDUContext const*) () at /lib/x86_64-linux-gnu/libKDevPlatformLanguage.so.54 #47580 0x00007ffff51911f5 in KDevelop::AbstractDeclarationNavigationContext::html(bool) () at /lib/x86_64-linux-gnu/libKDevPlatformLanguage.so.54 #47581 0x00007ffff517b830 in KDevelop::AbstractNavigationWidget::update() () at /lib/x86_64-linux-gnu/libKDevPlatformLanguage.so.54 #47582 0x00007ffff517bff5 in KDevelop::AbstractNavigationWidget::setContext(QExplicitlySharedDataPointer<KDevelop::AbstractNavigationContext>, int) () at /lib/x86_64-linux-gnu/libKDevPlatformLanguage.so.54 #47583 0x00007fffc2980a2f in ClangNavigationWidget::ClangNavigationWidget(KDevelop::DUChainPointer<KDevelop::Declaration> const&, QFlags<KDevelop::AbstractNavigationWidget::DisplayHint>) () at /lib/x86_64-linux-gnu/libKDevClangPrivate.so.32 #47584 0x00007fffc29600c5 in () at /lib/x86_64-linux-gnu/libKDevClangPrivate.so.32 #47585 0x00007fffe042b27e in () at /usr/lib/x86_64-linux-gnu/qt5/plugins/kdevplatform/32/kdevcontextbrowser.so #47586 0x00007fffe042be9c in () at /usr/lib/x86_64-linux-gnu/qt5/plugins/kdevplatform/32/kdevcontextbrowser.so #47587 0x00007fffe042c7e2 in () at /usr/lib/x86_64-linux-gnu/qt5/plugins/kdevplatform/32/kdevcontextbrowser.so #47588 0x00007ffff49bbe9c in () at /lib/x86_64-linux-gnu/libKF5TextEditor.so.5 #47589 0x00007ffff4ab3e62 in () at /lib/x86_64-linux-gnu/libKF5TextEditor.so.5 #47590 0x00007ffff670d468 in QMetaObject::activate(QObject*, int, int, void**) () at /lib/x86_64-linux-gnu/libQt5Core.so.5 #47591 0x00007ffff671a66b in QTimer::timeout(QTimer::QPrivateSignal) () at /lib/x86_64-linux-gnu/libQt5Core.so.5 #47592 0x00007ffff670de55 in QObject::event(QEvent*) () at /lib/x86_64-linux-gnu/libQt5Core.so.5 With debug symbols: #47576 0x00007ffff51084f8 in KDevelop::AbstractDeclarationNavigationContext::declarationSizeInformation(KDevelop::DUChainPointer<KDevelop::Declaration> const&, KDevelop::TopDUContext const*) (decl=..., topContext=0x5555594391e0) at ./kdevplatform/language/duchain/navigation/abstractdeclarationnavigationcontext.cpp:871 #47577 0x00007ffff51084f8 in KDevelop::AbstractDeclarationNavigationContext::declarationSizeInformation(KDevelop::DUChainPointer<KDevelop::Declaration> const&, KDevelop::TopDUContext const*) (decl=..., topContext=0x5555594391e0) at ./kdevplatform/language/duchain/navigation/abstractdeclarationnavigationcontext.cpp:871 #47578 0x00007ffff51084f8 in KDevelop::AbstractDeclarationNavigationContext::declarationSizeInformation(KDevelop::DUChainPointer<KDevelop::Declaration> const&, KDevelop::TopDUContext const*) (decl=..., topContext=0x5555594391e0) at ./kdevplatform/language/duchain/navigation/abstractdeclarationnavigationcontext.cpp:871 #47579 0x00007ffff51084f8 in KDevelop::AbstractDeclarationNavigationContext::declarationSizeInformation(KDevelop::DUChainPointer<KDevelop::Declaration> const&, KDevelop::TopDUContext const*) (decl=..., topContext=0x5555594391e0) at ./kdevplatform/language/duchain/navigation/abstractdeclarationnavigationcontext.cpp:871 #47580 0x00007ffff51084f8 in KDevelop::AbstractDeclarationNavigationContext::declarationSizeInformation(KDevelop::DUChainPointer<KDevelop::Declaration> const&, KDevelop::TopDUContext const*) (decl=..., topContext=0x5555594391e0) at ./kdevplatform/language/duchain/navigation/abstractdeclarationnavigationcontext.cpp:871 #47581 0x00007ffff51084f8 in KDevelop::AbstractDeclarationNavigationContext::declarationSizeInformation(KDevelop::DUChainPointer<KDevelop::Declaration> const&, KDevelop::TopDUContext const*) (decl=..., topContext=0x5555594391e0) at ./kdevplatform/language/duchain/navigation/abstractdeclarationnavigationcontext.cpp:871 #47582 0x00007ffff51028e0 in KDevelop::AbstractDeclarationNavigationContext::html(bool) (this=0x55555e29b4c0, shorten=false) at ./kdevplatform/language/duchain/navigation/abstractdeclarationnavigationcontext.cpp:361 #47583 0x00007ffff50f405d in KDevelop::AbstractNavigationWidget::update() (this=0x55555e108d50) at ./kdevplatform/language/duchain/navigation/abstractnavigationwidget.cpp:199 #47584 0x00007ffff50f3cc0 in KDevelop::AbstractNavigationWidget::setContext(QExplicitlySharedDataPointer<KDevelop::AbstractNavigationContext>, int) (this=0x55555e108d50, context=..., initBrows=400) at ./kdevplatform/language/duchain/navigation/abstractnavigationwidget.cpp:159 #47585 0x00007fffbb4b9a2f in ClangNavigationWidget::ClangNavigationWidget(KDevelop::DUChainPointer<KDevelop::Declaration> const&, QFlags<KDevelop::AbstractNavigationWidget::DisplayHint>) () at /lib/x86_64-linux-gnu/libKDevClangPrivate.so.32 #47586 0x00007fffbb4990c5 in () at /lib/x86_64-linux-gnu/libKDevClangPrivate.so.32 #47587 0x00007fffe00ce27e in () at /usr/lib/x86_64-linux-gnu/qt5/plugins/kdevplatform/32/kdevcontextbrowser.so #47588 0x00007fffe00cee9c in () at /usr/lib/x86_64-linux-gnu/qt5/plugins/kdevplatform/32/kdevcontextbrowser.so #47589 0x00007fffe00cf7e2 in () at /usr/lib/x86_64-linux-gnu/qt5/plugins/kdevplatform/32/kdevcontextbrowser.so #47590 0x00007ffff48f7e9c in () at /lib/x86_64-linux-gnu/libKF5TextEditor.so.5 #47591 0x00007ffff49efe62 in () at /lib/x86_64-linux-gnu/libKF5TextEditor.so.5 #47592 0x00007ffff670b468 in QMetaObject::activate(QObject*, int, int, void**) () at /lib/x86_64-linux-gnu/libQt5Core.so.5 Created attachment 124845 [details]
proposed workaround
I made a workaround for this crash.
The idea is to detect the infinite loop in type alias.
|