Summary: | Kdevelop crashes during parsing [KDevelop::DUContext::type, KDevelop::CodeHighlightingInstance::typeForDeclaration] | ||
---|---|---|---|
Product: | [Developer tools] kdevplatform | Reporter: | claas.koehler |
Component: | language | Assignee: | kdevelop-bugs-null |
Status: | RESOLVED FIXED | ||
Severity: | crash | CC: | 4ernov, david.nolden.kde, giorgos.tsiapaliokas, hippiehunterenator, matze_borag |
Priority: | VHI | ||
Version: | 1.2.0 | ||
Target Milestone: | 1.2.0 | ||
Platform: | openSUSE | ||
OS: | Linux | ||
Latest Commit: | http://commits.kde.org/kdevelop/5b5e3703745ef12cd8b56eb8e86db93178ccd9f5 | Version Fixed In: | |
Sentry Crash Report: | |||
Attachments: |
related valgrind output
New crash information added by DrKonqi |
Description
claas.koehler
2011-06-15 16:13:26 UTC
Created attachment 61023 [details]
related valgrind output
crash is reproducible when run under valgrind and gives the attached valgrind output
*** Bug 262718 has been marked as a duplicate of this bug. *** *** Bug 269761 has been marked as a duplicate of this bug. *** Thanks for the valgrind log, this seems to be a real issue. Can anyone of you give us access to the file/project that triggers this issue? Maybe look at the output of kdevelop and see what file is parsed/highlighted before it crashes (see also the kdebugdialog app to enable kdev c++ and language debug areas). @David: Looking at the sources I see that the DUChain is repeatedly locked/unlocked in CodeHighlightingInstance but the API uses raw pointers, not DUChainPointers, which might lead to problems like this one, or? Though considering that the ReferencedTopDUContext in CodeHighlighting::highlightingDUChain is kept alive, the document should not be cleaned/invalidated inbetween hmmm.... The duchain of the document should not be changed while updating, because the parse-job triggering the highlighting is holding the UrlParseLock for the document and the parseLock of the language-support. One prevents updating of the document, the other one prevents a global cleanup of the duchain. Still, maybe this doesn't work properly. @reporter: Please remove the "lock.unlock();" line in CodeHighlighting::highlightDUChain, rebuild, and check if the crash still happens. Hello, there is still this issue. I have compiled kdevelop from sources 2 hours ago. I am using gentoo as my distro. i have made some tests,kdevelop is working for 3 template projects but when i add plasmate in the list it crashes... My intention is to give you more feedback and not to complain about the bug.. Here is the latest output, Application: KDevelop (kdevelop), signal: Segmentation fault [Current thread is 1 (Thread 0x7f0c437fa760 (LWP 438))] Thread 13 (Thread 0x7f0c2e910700 (LWP 1789)): #0 pthread_cond_timedwait () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:216 #1 0x00007f0c41cab5e1 in wait (time=1000, this=0x18bd8b0) at thread/qwaitcondition_unix.cpp:86 #2 QWaitCondition::wait (this=<optimized out>, mutex=0x18e2540, time=1000) at thread/qwaitcondition_unix.cpp:160 #3 0x00007f0c3e2d12aa in KDevelop::DUChainPrivate::CleanupThread::run (this=0x18e2520) at /var/tmp/portage/dev-util/kdevplatform-9999/work/kdevplatform-9999/language/duchain/duchain.cpp:282 #4 0x00007f0c41caaf95 in QThreadPrivate::start (arg=0x18e2520) at thread/qthread_unix.cpp:331 #5 0x00007f0c40702d4c in start_thread (arg=0x7f0c2e910700) at pthread_create.c:301 #6 0x00007f0c409efc6d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115 Thread 12 (Thread 0x7f0c1c503700 (LWP 1848)): #0 0x00007f0c40705354 in __pthread_mutex_lock (mutex=0x7f0c20001268) at pthread_mutex_lock.c:61 #1 0x00007f0c3b7295b5 in g_main_context_prepare (context=0x7f0c20001260, priority=0x7f0c1c502ccc) at gmain.c:2748 #2 0x00007f0c3b72a3a9 in g_main_context_iterate (context=0x7f0c20001260, block=1, dispatch=1, self=<optimized out>) at gmain.c:3053 #3 0x00007f0c3b72a9e1 in g_main_context_iteration (context=0x7f0c20001260, may_block=1) at gmain.c:3136 #4 0x00007f0c41dbe026 in QEventDispatcherGlib::processEvents (this=0x7f0c200009d0, flags=<optimized out>) at kernel/qeventdispatcher_glib.cpp:424 #5 0x00007f0c41d92422 in QEventLoop::processEvents (this=<optimized out>, flags=...) at kernel/qeventloop.cpp:149 #6 0x00007f0c41d92664 in QEventLoop::exec (this=0x7f0c1c502de0, flags=...) at kernel/qeventloop.cpp:201 #7 0x00007f0c41ca8744 in QThread::exec (this=<optimized out>) at thread/qthread.cpp:498 #8 0x00007f0c41d73fd8 in QInotifyFileSystemWatcherEngine::run (this=0x24c8240) at io/qfilesystemwatcher_inotify.cpp:248 #9 0x00007f0c41caaf95 in QThreadPrivate::start (arg=0x24c8240) at thread/qthread_unix.cpp:331 #10 0x00007f0c40702d4c in start_thread (arg=0x7f0c1c503700) at pthread_create.c:301 #11 0x00007f0c409efc6d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115 Thread 11 (Thread 0x7f0c1aa94700 (LWP 2311)): #0 pthread_cond_wait () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162 #1 0x00007f0c38a5e1d4 in scavengerThread (this=0x7f0c3927ff20) at wtf/FastMalloc.cpp:2378 #2 WTF::TCMalloc_PageHeap::runScavengerThread (context=0x7f0c3927ff20) at wtf/FastMalloc.cpp:1497 #3 0x00007f0c40702d4c in start_thread (arg=0x7f0c1aa94700) at pthread_create.c:301 #4 0x00007f0c409efc6d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115 Thread 10 (Thread 0x7f0c1b295700 (LWP 2313)): #0 0x00007f0c409e6fa3 in *__GI___poll (fds=<optimized out>, nfds=<optimized out>, timeout=<optimized out>) at ../sysdeps/unix/sysv/linux/poll.c:87 #1 0x00007f0c3b72a524 in g_main_context_poll (n_fds=1, fds=0x7f0c14017eb0, timeout=-1, context=0x2a2f0f0, priority=<optimized out>) at gmain.c:3386 #2 g_main_context_iterate (context=0x2a2f0f0, block=1, dispatch=1, self=<optimized out>) at gmain.c:3068 #3 0x00007f0c3b72a9e1 in g_main_context_iteration (context=0x2a2f0f0, may_block=1) at gmain.c:3136 #4 0x00007f0c41dbe026 in QEventDispatcherGlib::processEvents (this=0x253eb70, flags=<optimized out>) at kernel/qeventdispatcher_glib.cpp:424 #5 0x00007f0c41d92422 in QEventLoop::processEvents (this=<optimized out>, flags=...) at kernel/qeventloop.cpp:149 #6 0x00007f0c41d92664 in QEventLoop::exec (this=0x7f0c1b294e20, flags=...) at kernel/qeventloop.cpp:201 #7 0x00007f0c41ca8744 in QThread::exec (this=<optimized out>) at thread/qthread.cpp:498 #8 0x00007f0c41caaf95 in QThreadPrivate::start (arg=0xa2b780) at thread/qthread_unix.cpp:331 #9 0x00007f0c40702d4c in start_thread (arg=0x7f0c1b295700) at pthread_create.c:301 #10 0x00007f0c409efc6d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115 Thread 9 (Thread 0x7f0c1934f700 (LWP 2391)): #0 pthread_cond_timedwait () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:216 #1 0x00007f0c41cab5e1 in wait (time=30000, this=0x2ae56c0) at thread/qwaitcondition_unix.cpp:86 #2 QWaitCondition::wait (this=<optimized out>, mutex=0x2ae3ec0, time=30000) at thread/qwaitcondition_unix.cpp:160 #3 0x00007f0c41ca00b7 in QThreadPoolThread::run (this=0x227ed60) at concurrent/qthreadpool.cpp:140 #4 0x00007f0c41caaf95 in QThreadPrivate::start (arg=0x227ed60) at thread/qthread_unix.cpp:331 #5 0x00007f0c40702d4c in start_thread (arg=0x7f0c1934f700) at pthread_create.c:301 #6 0x00007f0c409efc6d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115 Thread 8 (Thread 0x7f0c18b4e700 (LWP 2403)): #0 pthread_cond_timedwait () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:216 #1 0x00007f0c41cab5e1 in wait (time=30000, this=0x2ae56c0) at thread/qwaitcondition_unix.cpp:86 #2 QWaitCondition::wait (this=<optimized out>, mutex=0x2ae3ec0, time=30000) at thread/qwaitcondition_unix.cpp:160 #3 0x00007f0c41ca00b7 in QThreadPoolThread::run (this=0x2b02330) at concurrent/qthreadpool.cpp:140 #4 0x00007f0c41caaf95 in QThreadPrivate::start (arg=0x2b02330) at thread/qthread_unix.cpp:331 #5 0x00007f0c40702d4c in start_thread (arg=0x7f0c18b4e700) at pthread_create.c:301 #6 0x00007f0c409efc6d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115 Thread 7 (Thread 0x7f0c13fff700 (LWP 2416)): #0 pthread_cond_timedwait () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:216 #1 0x00007f0c41cab5e1 in wait (time=30000, this=0x2ae56c0) at thread/qwaitcondition_unix.cpp:86 #2 QWaitCondition::wait (this=<optimized out>, mutex=0x2ae3ec0, time=30000) at thread/qwaitcondition_unix.cpp:160 #3 0x00007f0c41ca00b7 in QThreadPoolThread::run (this=0x2b07910) at concurrent/qthreadpool.cpp:140 #4 0x00007f0c41caaf95 in QThreadPrivate::start (arg=0x2b07910) at thread/qthread_unix.cpp:331 #5 0x00007f0c40702d4c in start_thread (arg=0x7f0c13fff700) at pthread_create.c:301 #6 0x00007f0c409efc6d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115 Thread 6 (Thread 0x7f0c137fe700 (LWP 3207)): #0 pthread_cond_wait () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162 #1 0x00007f0c2eeb4594 in QTWTF::TCMalloc_PageHeap::scavengerThread (this=0x7f0c2f1cd180) at ../3rdparty/javascriptcore/JavaScriptCore/wtf/FastMalloc.cpp:2359 #2 0x00007f0c2eeb45c9 in QTWTF::TCMalloc_PageHeap::runScavengerThread (context=0x7f0c2f1db254) at ../3rdparty/javascriptcore/JavaScriptCore/wtf/FastMalloc.cpp:1464 #3 0x00007f0c40702d4c in start_thread (arg=0x7f0c137fe700) at pthread_create.c:301 #4 0x00007f0c409efc6d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115 Thread 5 (Thread 0x7f0c124a1700 (LWP 3328)): #0 0x00007f0c409e6fa3 in *__GI___poll (fds=<optimized out>, nfds=<optimized out>, timeout=<optimized out>) at ../sysdeps/unix/sysv/linux/poll.c:87 #1 0x00007f0c3b72a524 in g_main_context_poll (n_fds=1, fds=0x7f0c142853d0, timeout=-1, context=0x2611630, priority=<optimized out>) at gmain.c:3386 #2 g_main_context_iterate (context=0x2611630, block=1, dispatch=1, self=<optimized out>) at gmain.c:3068 #3 0x00007f0c3b72a9e1 in g_main_context_iteration (context=0x2611630, may_block=1) at gmain.c:3136 #4 0x00007f0c41dbe026 in QEventDispatcherGlib::processEvents (this=0x382b230, flags=<optimized out>) at kernel/qeventdispatcher_glib.cpp:424 #5 0x00007f0c41d92422 in QEventLoop::processEvents (this=<optimized out>, flags=...) at kernel/qeventloop.cpp:149 #6 0x00007f0c41d92664 in QEventLoop::exec (this=0x7f0c124a0e20, flags=...) at kernel/qeventloop.cpp:201 #7 0x00007f0c41ca8744 in QThread::exec (this=<optimized out>) at thread/qthread.cpp:498 #8 0x00007f0c41caaf95 in QThreadPrivate::start (arg=0x38799c0) at thread/qthread_unix.cpp:331 #9 0x00007f0c40702d4c in start_thread (arg=0x7f0c124a1700) at pthread_create.c:301 #10 0x00007f0c409efc6d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115 Thread 4 (Thread 0x7f0c11ca0700 (LWP 3329)): #0 0x00007f0c409e6fa3 in *__GI___poll (fds=<optimized out>, nfds=<optimized out>, timeout=<optimized out>) at ../sysdeps/unix/sysv/linux/poll.c:87 #1 0x00007f0c3b72a524 in g_main_context_poll (n_fds=1, fds=0x2427630, timeout=-1, context=0x25fe690, priority=<optimized out>) at gmain.c:3386 #2 g_main_context_iterate (context=0x25fe690, block=1, dispatch=1, self=<optimized out>) at gmain.c:3068 #3 0x00007f0c3b72a9e1 in g_main_context_iteration (context=0x25fe690, may_block=1) at gmain.c:3136 #4 0x00007f0c41dbe026 in QEventDispatcherGlib::processEvents (this=0x2490b60, flags=<optimized out>) at kernel/qeventdispatcher_glib.cpp:424 #5 0x00007f0c41d92422 in QEventLoop::processEvents (this=<optimized out>, flags=...) at kernel/qeventloop.cpp:149 #6 0x00007f0c41d92664 in QEventLoop::exec (this=0x7f0c11c9fe20, flags=...) at kernel/qeventloop.cpp:201 #7 0x00007f0c41ca8744 in QThread::exec (this=<optimized out>) at thread/qthread.cpp:498 #8 0x00007f0c41caaf95 in QThreadPrivate::start (arg=0x2483d80) at thread/qthread_unix.cpp:331 #9 0x00007f0c40702d4c in start_thread (arg=0x7f0c11ca0700) at pthread_create.c:301 #10 0x00007f0c409efc6d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115 Thread 3 (Thread 0x7f0c1149f700 (LWP 3334)): #0 pthread_cond_wait () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162 #1 0x00007f0c41cab67b in wait (time=18446744073709551615, this=0x9d15b0) at thread/qwaitcondition_unix.cpp:88 #2 QWaitCondition::wait (this=<optimized out>, mutex=0x80d440, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:160 #3 0x00007f0c392adf84 in ThreadWeaver::WeaverImpl::blockThreadUntilJobsAreBeingAssigned (this=0x9cfd00, th=0x2346960) at /var/tmp/portage/kde-base/kdelibs-4.7.2/work/kdelibs-4.7.2/threadweaver/Weaver/WeaverImpl.cpp:365 #4 0x00007f0c392b0613 in ThreadWeaver::WorkingHardState::applyForWork (this=0x846410, th=0x2346960) at /var/tmp/portage/kde-base/kdelibs-4.7.2/work/kdelibs-4.7.2/threadweaver/Weaver/WorkingHardState.cpp:71 #5 0x00007f0c392b062c in ThreadWeaver::WorkingHardState::applyForWork (this=0x846410, th=0x2346960) at /var/tmp/portage/kde-base/kdelibs-4.7.2/work/kdelibs-4.7.2/threadweaver/Weaver/WorkingHardState.cpp:74 #6 0x00007f0c392af3ff in ThreadWeaver::ThreadRunHelper::run (this=0x7f0c1149ee30, parent=0x9cfd00, th=0x2346960) at /var/tmp/portage/kde-base/kdelibs-4.7.2/work/kdelibs-4.7.2/threadweaver/Weaver/Thread.cpp:87 #7 0x00007f0c392af488 in ThreadWeaver::Thread::run (this=0x2346960) at /var/tmp/portage/kde-base/kdelibs-4.7.2/work/kdelibs-4.7.2/threadweaver/Weaver/Thread.cpp:142 #8 0x00007f0c41caaf95 in QThreadPrivate::start (arg=0x2346960) at thread/qthread_unix.cpp:331 #9 0x00007f0c40702d4c in start_thread (arg=0x7f0c1149f700) at pthread_create.c:301 #10 0x00007f0c409efc6d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115 Thread 2 (Thread 0x7f0c10c9e700 (LWP 3335)): [KCrash Handler] #6 0x00007f0c127e1434 in Cpp::ExpressionVisitor::visitName (this=0x7f0c10c8c520, node=0x7f0c20d94268) at /var/tmp/portage/dev-util/kdevelop-9999/work/kdevelop-9999/languages/cpp/cppduchain/expressionvisitor.cpp:492 #7 0x00007f0c124b9d1e in DefaultVisitor::visitTypeIdentification (this=0x7f0c10c8c520, node=0x7f0c20d94458) at /var/tmp/portage/dev-util/kdevelop-9999/work/kdevelop-9999/languages/cpp/parser/default_visitor.cpp:434 #8 0x00007f0c127d6dfa in Cpp::ExpressionVisitor::parse (this=0x7f0c10c8c520, ast=0x7f0c20d94458) at /var/tmp/portage/dev-util/kdevelop-9999/work/kdevelop-9999/languages/cpp/cppduchain/expressionvisitor.cpp:249 #9 0x00007f0c127d424b in Cpp::ExpressionParser::evaluateType (this=<optimized out>, ast=0x7f0c20d94458, session=<optimized out>, source=0x7f0c1630c340) at /var/tmp/portage/dev-util/kdevelop-9999/work/kdevelop-9999/languages/cpp/cppduchain/expressionparser.cpp:114 #10 0x00007f0c127d4862 in Cpp::ExpressionParser::evaluateType (this=0x7f0c10c8de10, unit=..., context=<optimized out>, source=0x7f0c1630c340, forceExpression=true) at /var/tmp/portage/dev-util/kdevelop-9999/work/kdevelop-9999/languages/cpp/cppduchain/expressionparser.cpp:93 #11 0x00007f0c127d4bec in Cpp::ExpressionParser::evaluateExpression (this=<optimized out>, expression=<optimized out>, context=<optimized out>, source=<optimized out>) at /var/tmp/portage/dev-util/kdevelop-9999/work/kdevelop-9999/languages/cpp/cppduchain/expressionparser.cpp:101 #12 0x00007f0c127cb39b in DelayedTypeResolver::exchange (this=<optimized out>, type=<optimized out>) at /var/tmp/portage/dev-util/kdevelop-9999/work/kdevelop-9999/languages/cpp/cppduchain/templatedeclaration.cpp:197 #13 0x00007f0c127c4e5e in Cpp::resolveDelayedTypes (type=..., context=<optimized out>, source=0x7f0c1630c340, searchFlags=<optimized out>) at /var/tmp/portage/dev-util/kdevelop-9999/work/kdevelop-9999/languages/cpp/cppduchain/templatedeclaration.cpp:1034 #14 0x00007f0c12762fd3 in Cpp::CppDUContext<KDevelop::DUContext>::findDeclarationsInternal (this=0x7f0c20c41080, identifier=..., position=<optimized out>, dataType=<optimized out>, ret=..., source=0x7f0c1630c340, basicFlags=...) at /var/tmp/portage/dev-util/kdevelop-9999/work/kdevelop-9999/languages/cpp/cppduchain/cppducontext.h:345 #15 0x00007f0c12767f64 in Cpp::CppDUContext<KDevelop::DUContext>::findDeclarationsInternal (this=0x7f0c20c41080, identifiers=..., position=..., dataType=..., ret=..., source=0x7f0c1630c340, basicFlags=..., depth=0) at /var/tmp/portage/dev-util/kdevelop-9999/work/kdevelop-9999/languages/cpp/cppduchain/cppducontext.h:286 #16 0x00007f0c3e2d8607 in KDevelop::DUContext::findDeclarations (this=0x7f0c20c41080, identifier=<optimized out>, position=..., dataType=..., topContext=<optimized out>, flags=...) at /var/tmp/portage/dev-util/kdevplatform-9999/work/kdevplatform-9999/language/duchain/ducontext.cpp:857 #17 0x00007f0c12796591 in TypeBuilder::openTypeFromName (this=0x7f0c10c8f960, name=0x7f0c164a5ab0, modifiers=0, needClass=false) at /var/tmp/portage/dev-util/kdevelop-9999/work/kdevelop-9999/languages/cpp/cppduchain/typebuilder.cpp:468 #18 0x00007f0c127974af in TypeBuilder::visitSimpleTypeSpecifier (this=0x7f0c10c8f960, node=0x7f0c164a5ae0) at /var/tmp/portage/dev-util/kdevelop-9999/work/kdevelop-9999/languages/cpp/cppduchain/typebuilder.cpp:390 #19 0x00007f0c127586ab in ContextBuilder::visitFunctionDeclaration (this=0x7f0c10c8f960, node=0x7f0c164a8470) at /var/tmp/portage/dev-util/kdevelop-9999/work/kdevelop-9999/languages/cpp/cppduchain/contextbuilder.cpp:606 #20 0x00007f0c1276b765 in DeclarationBuilder::visitFunctionDeclaration (this=0x7f0c10c8f960, node=0x7f0c164a8470) at /var/tmp/portage/dev-util/kdevelop-9999/work/kdevelop-9999/languages/cpp/cppduchain/declarationbuilder.cpp:177 #21 0x00007f0c1275c16f in ContextBuilder::visitFunctionDefinition (this=0x7f0c10c8f960, node=0x7f0c164a8470) at /var/tmp/portage/dev-util/kdevelop-9999/work/kdevelop-9999/languages/cpp/cppduchain/contextbuilder.cpp:576 #22 0x00007f0c1275b67a in ContextBuilder::visitTemplateDeclaration (this=0x7f0c10c8f960, ast=0x7f0c164a84e0) at /var/tmp/portage/dev-util/kdevelop-9999/work/kdevelop-9999/languages/cpp/cppduchain/contextbuilder.cpp:292 #23 0x00007f0c124ba58e in visitNodes<DeclarationAST*> (v=0x7f0c10c8f9c0, nodes=<optimized out>) at /var/tmp/portage/dev-util/kdevelop-9999/work/kdevelop-9999/languages/cpp/parser/visitor.h:138 #24 0x00007f0c1275d911 in KDevelop::AbstractContextBuilder<AST, NameAST>::supportBuild (this=0x7f0c10c8f960, node=0x7f0c16376ee0, context=<optimized out>) at /usr/include/kdevplatform/language/duchain/builders/abstractcontextbuilder.h:133 #25 0x00007f0c1275cfd5 in ContextBuilder::buildContexts (this=0x7f0c10c8f960, file=..., node=0x7f0c16376ee0, includes=<optimized out>, updateContext=<optimized out>, removeOldImports=false) at /var/tmp/portage/dev-util/kdevelop-9999/work/kdevelop-9999/languages/cpp/cppduchain/contextbuilder.cpp:421 #26 0x00007f0c12769681 in DeclarationBuilder::buildDeclarations (this=<optimized out>, file=<optimized out>, node=<optimized out>, includes=<optimized out>, updateContext=<optimized out>, removeOldImports=false) at /var/tmp/portage/dev-util/kdevelop-9999/work/kdevelop-9999/languages/cpp/cppduchain/declarationbuilder.cpp:92 #27 0x00007f0c12a6f72b in CPPInternalParseJob::run (this=<optimized out>) at /var/tmp/portage/dev-util/kdevelop-9999/work/kdevelop-9999/languages/cpp/cppparsejob.cpp:637 #28 0x00007f0c12a75ee4 in PreprocessJob::sourceNeeded (this=0x421aee0, _fileName=<optimized out>, type=<optimized out>, sourceLine=81, skipCurrentPath=<optimized out>) at /var/tmp/portage/dev-util/kdevelop-9999/work/kdevelop-9999/languages/cpp/preprocessjob.cpp:579 #29 0x00007f0c18142404 in rpp::pp::handle_include (this=0x7f0c10c91690, skip_current_path=false, input=..., output=<optimized out>) at /var/tmp/portage/dev-util/kdevelop-9999/work/kdevelop-9999/languages/cpp/parser/rpp/pp-engine.cpp:213 #30 0x00007f0c18144e9b in rpp::pp::handle_directive (this=0x7f0c10c91690, directive=118480, input=..., output=...) at /var/tmp/portage/dev-util/kdevelop-9999/work/kdevelop-9999/languages/cpp/parser/rpp/pp-engine.cpp:131 #31 0x00007f0c181455d5 in rpp::pp::operator() (this=0x7f0c10c91690, input=..., output=...) at /var/tmp/portage/dev-util/kdevelop-9999/work/kdevelop-9999/languages/cpp/parser/rpp/pp-engine.cpp:266 #32 0x00007f0c1814582e in rpp::pp::processFileInternal (this=0x7f0c10c91690, fileName=<optimized out>, fileContents=<optimized out>, result=...) at /var/tmp/portage/dev-util/kdevelop-9999/work/kdevelop-9999/languages/cpp/parser/rpp/pp-engine.cpp:98 #33 0x00007f0c181458b5 in rpp::pp::processFile (this=<optimized out>, fileName=<optimized out>, data=<optimized out>) at /var/tmp/portage/dev-util/kdevelop-9999/work/kdevelop-9999/languages/cpp/parser/rpp/pp-engine.cpp:85 #34 0x00007f0c12a77135 in PreprocessJob::run (this=0x421aee0) at /var/tmp/portage/dev-util/kdevelop-9999/work/kdevelop-9999/languages/cpp/preprocessjob.cpp:245 #35 0x00007f0c12a6cc4e in CPPParseJob::parseForeground (this=0x484f500) at /var/tmp/portage/dev-util/kdevelop-9999/work/kdevelop-9999/languages/cpp/cppparsejob.cpp:174 #36 0x00007f0c12a75ee4 in PreprocessJob::sourceNeeded (this=0x3d2aaf0, _fileName=<optimized out>, type=<optimized out>, sourceLine=20, skipCurrentPath=<optimized out>) at /var/tmp/portage/dev-util/kdevelop-9999/work/kdevelop-9999/languages/cpp/preprocessjob.cpp:579 #37 0x00007f0c18142404 in rpp::pp::handle_include (this=0x7f0c10c93a10, skip_current_path=false, input=..., output=<optimized out>) at /var/tmp/portage/dev-util/kdevelop-9999/work/kdevelop-9999/languages/cpp/parser/rpp/pp-engine.cpp:213 #38 0x00007f0c18144e9b in rpp::pp::handle_directive (this=0x7f0c10c93a10, directive=118480, input=..., output=...) at /var/tmp/portage/dev-util/kdevelop-9999/work/kdevelop-9999/languages/cpp/parser/rpp/pp-engine.cpp:131 #39 0x00007f0c181455d5 in rpp::pp::operator() (this=0x7f0c10c93a10, input=..., output=...) at /var/tmp/portage/dev-util/kdevelop-9999/work/kdevelop-9999/languages/cpp/parser/rpp/pp-engine.cpp:266 #40 0x00007f0c1814582e in rpp::pp::processFileInternal (this=0x7f0c10c93a10, fileName=<optimized out>, fileContents=<optimized out>, result=...) at /var/tmp/portage/dev-util/kdevelop-9999/work/kdevelop-9999/languages/cpp/parser/rpp/pp-engine.cpp:98 #41 0x00007f0c181458b5 in rpp::pp::processFile (this=<optimized out>, fileName=<optimized out>, data=<optimized out>) at /var/tmp/portage/dev-util/kdevelop-9999/work/kdevelop-9999/languages/cpp/parser/rpp/pp-engine.cpp:85 #42 0x00007f0c12a77135 in PreprocessJob::run (this=0x3d2aaf0) at /var/tmp/portage/dev-util/kdevelop-9999/work/kdevelop-9999/languages/cpp/preprocessjob.cpp:245 #43 0x00007f0c12a6cc4e in CPPParseJob::parseForeground (this=0x3ae97a0) at /var/tmp/portage/dev-util/kdevelop-9999/work/kdevelop-9999/languages/cpp/cppparsejob.cpp:174 #44 0x00007f0c12a75ee4 in PreprocessJob::sourceNeeded (this=0x4890140, _fileName=<optimized out>, type=<optimized out>, sourceLine=26, skipCurrentPath=<optimized out>) at /var/tmp/portage/dev-util/kdevelop-9999/work/kdevelop-9999/languages/cpp/preprocessjob.cpp:579 #45 0x00007f0c18142404 in rpp::pp::handle_include (this=0x7f0c10c95d90, skip_current_path=false, input=..., output=<optimized out>) at /var/tmp/portage/dev-util/kdevelop-9999/work/kdevelop-9999/languages/cpp/parser/rpp/pp-engine.cpp:213 #46 0x00007f0c18144e9b in rpp::pp::handle_directive (this=0x7f0c10c95d90, directive=118480, input=..., output=...) at /var/tmp/portage/dev-util/kdevelop-9999/work/kdevelop-9999/languages/cpp/parser/rpp/pp-engine.cpp:131 #47 0x00007f0c181455d5 in rpp::pp::operator() (this=0x7f0c10c95d90, input=..., output=...) at /var/tmp/portage/dev-util/kdevelop-9999/work/kdevelop-9999/languages/cpp/parser/rpp/pp-engine.cpp:266 #48 0x00007f0c1814582e in rpp::pp::processFileInternal (this=0x7f0c10c95d90, fileName=<optimized out>, fileContents=<optimized out>, result=...) at /var/tmp/portage/dev-util/kdevelop-9999/work/kdevelop-9999/languages/cpp/parser/rpp/pp-engine.cpp:98 #49 0x00007f0c181458b5 in rpp::pp::processFile (this=<optimized out>, fileName=<optimized out>, data=<optimized out>) at /var/tmp/portage/dev-util/kdevelop-9999/work/kdevelop-9999/languages/cpp/parser/rpp/pp-engine.cpp:85 #50 0x00007f0c12a77135 in PreprocessJob::run (this=0x4890140) at /var/tmp/portage/dev-util/kdevelop-9999/work/kdevelop-9999/languages/cpp/preprocessjob.cpp:245 #51 0x00007f0c12a6cc4e in CPPParseJob::parseForeground (this=0x46de810) at /var/tmp/portage/dev-util/kdevelop-9999/work/kdevelop-9999/languages/cpp/cppparsejob.cpp:174 #52 0x00007f0c12a75ee4 in PreprocessJob::sourceNeeded (this=0x4a199d0, _fileName=<optimized out>, type=<optimized out>, sourceLine=16, skipCurrentPath=<optimized out>) at /var/tmp/portage/dev-util/kdevelop-9999/work/kdevelop-9999/languages/cpp/preprocessjob.cpp:579 #53 0x00007f0c18142404 in rpp::pp::handle_include (this=0x7f0c10c98110, skip_current_path=false, input=..., output=<optimized out>) at /var/tmp/portage/dev-util/kdevelop-9999/work/kdevelop-9999/languages/cpp/parser/rpp/pp-engine.cpp:213 #54 0x00007f0c18144e9b in rpp::pp::handle_directive (this=0x7f0c10c98110, directive=118480, input=..., output=...) at /var/tmp/portage/dev-util/kdevelop-9999/work/kdevelop-9999/languages/cpp/parser/rpp/pp-engine.cpp:131 #55 0x00007f0c181455d5 in rpp::pp::operator() (this=0x7f0c10c98110, input=..., output=...) at /var/tmp/portage/dev-util/kdevelop-9999/work/kdevelop-9999/languages/cpp/parser/rpp/pp-engine.cpp:266 #56 0x00007f0c1814582e in rpp::pp::processFileInternal (this=0x7f0c10c98110, fileName=<optimized out>, fileContents=<optimized out>, result=...) at /var/tmp/portage/dev-util/kdevelop-9999/work/kdevelop-9999/languages/cpp/parser/rpp/pp-engine.cpp:98 #57 0x00007f0c181458b5 in rpp::pp::processFile (this=<optimized out>, fileName=<optimized out>, data=<optimized out>) at /var/tmp/portage/dev-util/kdevelop-9999/work/kdevelop-9999/languages/cpp/parser/rpp/pp-engine.cpp:85 #58 0x00007f0c12a77135 in PreprocessJob::run (this=0x4a199d0) at /var/tmp/portage/dev-util/kdevelop-9999/work/kdevelop-9999/languages/cpp/preprocessjob.cpp:245 #59 0x00007f0c12a6cc4e in CPPParseJob::parseForeground (this=0x41ca220) at /var/tmp/portage/dev-util/kdevelop-9999/work/kdevelop-9999/languages/cpp/cppparsejob.cpp:174 #60 0x00007f0c12a75ee4 in PreprocessJob::sourceNeeded (this=0x47c1890, _fileName=<optimized out>, type=<optimized out>, sourceLine=29, skipCurrentPath=<optimized out>) at /var/tmp/portage/dev-util/kdevelop-9999/work/kdevelop-9999/languages/cpp/preprocessjob.cpp:579 #61 0x00007f0c18142404 in rpp::pp::handle_include (this=0x7f0c10c9a490, skip_current_path=false, input=..., output=<optimized out>) at /var/tmp/portage/dev-util/kdevelop-9999/work/kdevelop-9999/languages/cpp/parser/rpp/pp-engine.cpp:213 #62 0x00007f0c18144e9b in rpp::pp::handle_directive (this=0x7f0c10c9a490, directive=118480, input=..., output=...) at /var/tmp/portage/dev-util/kdevelop-9999/work/kdevelop-9999/languages/cpp/parser/rpp/pp-engine.cpp:131 #63 0x00007f0c181455d5 in rpp::pp::operator() (this=0x7f0c10c9a490, input=..., output=...) at /var/tmp/portage/dev-util/kdevelop-9999/work/kdevelop-9999/languages/cpp/parser/rpp/pp-engine.cpp:266 #64 0x00007f0c1814582e in rpp::pp::processFileInternal (this=0x7f0c10c9a490, fileName=<optimized out>, fileContents=<optimized out>, result=...) at /var/tmp/portage/dev-util/kdevelop-9999/work/kdevelop-9999/languages/cpp/parser/rpp/pp-engine.cpp:98 #65 0x00007f0c181458b5 in rpp::pp::processFile (this=<optimized out>, fileName=<optimized out>, data=<optimized out>) at /var/tmp/portage/dev-util/kdevelop-9999/work/kdevelop-9999/languages/cpp/parser/rpp/pp-engine.cpp:85 #66 0x00007f0c12a77135 in PreprocessJob::run (this=0x47c1890) at /var/tmp/portage/dev-util/kdevelop-9999/work/kdevelop-9999/languages/cpp/preprocessjob.cpp:245 #67 0x00007f0c12a6cc4e in CPPParseJob::parseForeground (this=0x41c9c10) at /var/tmp/portage/dev-util/kdevelop-9999/work/kdevelop-9999/languages/cpp/cppparsejob.cpp:174 #68 0x00007f0c12a75ee4 in PreprocessJob::sourceNeeded (this=0x4187df0, _fileName=<optimized out>, type=<optimized out>, sourceLine=40, skipCurrentPath=<optimized out>) at /var/tmp/portage/dev-util/kdevelop-9999/work/kdevelop-9999/languages/cpp/preprocessjob.cpp:579 #69 0x00007f0c18142404 in rpp::pp::handle_include (this=0x7f0c10c9c810, skip_current_path=false, input=..., output=<optimized out>) at /var/tmp/portage/dev-util/kdevelop-9999/work/kdevelop-9999/languages/cpp/parser/rpp/pp-engine.cpp:213 #70 0x00007f0c18144e9b in rpp::pp::handle_directive (this=0x7f0c10c9c810, directive=118480, input=..., output=...) at /var/tmp/portage/dev-util/kdevelop-9999/work/kdevelop-9999/languages/cpp/parser/rpp/pp-engine.cpp:131 #71 0x00007f0c181455d5 in rpp::pp::operator() (this=0x7f0c10c9c810, input=..., output=...) at /var/tmp/portage/dev-util/kdevelop-9999/work/kdevelop-9999/languages/cpp/parser/rpp/pp-engine.cpp:266 #72 0x00007f0c1814582e in rpp::pp::processFileInternal (this=0x7f0c10c9c810, fileName=<optimized out>, fileContents=<optimized out>, result=...) at /var/tmp/portage/dev-util/kdevelop-9999/work/kdevelop-9999/languages/cpp/parser/rpp/pp-engine.cpp:98 #73 0x00007f0c181458b5 in rpp::pp::processFile (this=<optimized out>, fileName=<optimized out>, data=<optimized out>) at /var/tmp/portage/dev-util/kdevelop-9999/work/kdevelop-9999/languages/cpp/parser/rpp/pp-engine.cpp:85 #74 0x00007f0c12a77135 in PreprocessJob::run (this=0x4187df0) at /var/tmp/portage/dev-util/kdevelop-9999/work/kdevelop-9999/languages/cpp/preprocessjob.cpp:245 #75 0x00007f0c392afae1 in ThreadWeaver::JobRunHelper::runTheJob (this=0x7f0c10c9dd80, th=0x7f0c1425d380, job=0x4187df0) at /var/tmp/portage/kde-base/kdelibs-4.7.2/work/kdelibs-4.7.2/threadweaver/Weaver/Job.cpp:106 #76 0x00007f0c392afc1e in ThreadWeaver::Job::execute (this=0x4187df0, th=0x7f0c1425d380) at /var/tmp/portage/kde-base/kdelibs-4.7.2/work/kdelibs-4.7.2/threadweaver/Weaver/Job.cpp:135 #77 0x00007f0c392b0ed3 in ThreadWeaver::JobCollectionJobRunner::execute (this=0x4630390, t=0x7f0c1425d380) at /var/tmp/portage/kde-base/kdelibs-4.7.2/work/kdelibs-4.7.2/threadweaver/Weaver/JobCollection.cpp:82 #78 0x00007f0c392af3cf in ThreadWeaver::ThreadRunHelper::run (this=0x7f0c10c9de30, parent=0x9cfd00, th=0x7f0c1425d380) at /var/tmp/portage/kde-base/kdelibs-4.7.2/work/kdelibs-4.7.2/threadweaver/Weaver/Thread.cpp:95 #79 0x00007f0c392af488 in ThreadWeaver::Thread::run (this=0x7f0c1425d380) at /var/tmp/portage/kde-base/kdelibs-4.7.2/work/kdelibs-4.7.2/threadweaver/Weaver/Thread.cpp:142 #80 0x00007f0c41caaf95 in QThreadPrivate::start (arg=0x7f0c1425d380) at thread/qthread_unix.cpp:331 #81 0x00007f0c40702d4c in start_thread (arg=0x7f0c10c9e700) at pthread_create.c:301 #82 0x00007f0c409efc6d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115 Thread 1 (Thread 0x7f0c437fa760 (LWP 438)): #0 0x00007f0c409e6f92 in *__GI___poll (fds=<optimized out>, nfds=<optimized out>, timeout=<optimized out>) at ../sysdeps/unix/sysv/linux/poll.c:87 #1 0x00007f0c37729e5a in _xcb_conn_wait (c=0x646940, cond=<optimized out>, vector=0x0, count=0x0) at /var/tmp/portage/x11-libs/libxcb-1.7/work/libxcb-1.7/src/xcb_conn.c:313 #2 0x00007f0c3772b487 in xcb_wait_for_reply (c=0x646940, request=149604, e=0x7fffd95c3ea8) at /var/tmp/portage/x11-libs/libxcb-1.7/work/libxcb-1.7/src/xcb_in.c:378 #3 0x00007f0c3cfe5ced in _XReply (dpy=0x640680, rep=0x7fffd95c3ef0, extra=0, discard=1) at /var/tmp/portage/x11-libs/libX11-1.4.4/work/libX11-1.4.4/src/xcb_io.c:601 #4 0x00007f0c3cfe2d5c in XTranslateCoordinates (dpy=0x640680, src_win=349, dest_win=20984764, src_x=291, src_y=267, dst_x=0x7fffd95c3f6c, dst_y=0x7fffd95c3f68, child=0x7fffd95c3f60) at /var/tmp/portage/x11-libs/libX11-1.4.4/work/libX11-1.4.4/src/TrCoords.c:51 #5 0x00007f0c4120a11e in QWidgetPrivate::mapFromGlobal (this=0x372ed30, pos=<optimized out>) at kernel/qwidget_x11.cpp:1314 #6 0x00007f0c4120a17e in QWidgetPrivate::mapFromGlobal (this=0x37371c0, pos=...) at kernel/qwidget_x11.cpp:1307 #7 0x00007f0c4120a17e in QWidgetPrivate::mapFromGlobal (this=0x24405a0, pos=...) at kernel/qwidget_x11.cpp:1307 #8 0x00007f0c4120a17e in QWidgetPrivate::mapFromGlobal (this=0x2440b10, pos=...) at kernel/qwidget_x11.cpp:1307 #9 0x00007f0c4120a17e in QWidgetPrivate::mapFromGlobal (this=0x2441a60, pos=...) at kernel/qwidget_x11.cpp:1307 #10 0x00007f0c4120a17e in QWidgetPrivate::mapFromGlobal (this=0x243f630, pos=...) at kernel/qwidget_x11.cpp:1307 #11 0x00007f0c4120a17e in QWidgetPrivate::mapFromGlobal (this=0x24407d0, pos=...) at kernel/qwidget_x11.cpp:1307 #12 0x00007f0c4120a1bd in QWidget::mapFromGlobal (this=<optimized out>, pos=<optimized out>) at kernel/qwidget_x11.cpp:1327 #13 0x00007f0c41177000 in QApplicationPrivate::pickMouseReceiver (candidate=0x3712b60, globalPos=..., pos=..., type=<optimized out>, buttons=..., buttonDown=0x0, alienWidget=<optimized out>) at kernel/qapplication.cpp:3068 #14 0x00007f0c411f67b2 in QETWidget::translateMouseEvent (this=0x3712b60, event=<optimized out>) at kernel/qapplication_x11.cpp:4451 #15 0x00007f0c411f4f09 in QApplication::x11ProcessEvent (this=0x7fffd95c51f0, event=0x7fffd95c4ba0) at kernel/qapplication_x11.cpp:3587 #16 0x00007f0c4121c6d2 in x11EventSourceDispatch (s=0x63dd70, callback=0, user_data=0x0) at kernel/qguieventdispatcher_glib.cpp:146 #17 0x00007f0c3b72a012 in g_main_dispatch (context=0x63d820) at gmain.c:2425 #18 g_main_context_dispatch (context=0x63d820) at gmain.c:2995 #19 0x00007f0c3b72a808 in g_main_context_iterate (context=0x63d820, block=1, dispatch=1, self=<optimized out>) at gmain.c:3073 #20 0x00007f0c3b72a9e1 in g_main_context_iteration (context=0x63d820, may_block=1) at gmain.c:3136 #21 0x00007f0c41dbdfcf in QEventDispatcherGlib::processEvents (this=0x639a90, flags=<optimized out>) at kernel/qeventdispatcher_glib.cpp:422 #22 0x00007f0c4121c37e in QGuiEventDispatcherGlib::processEvents (this=<optimized out>, flags=<optimized out>) at kernel/qguieventdispatcher_glib.cpp:204 #23 0x00007f0c41d92422 in QEventLoop::processEvents (this=<optimized out>, flags=...) at kernel/qeventloop.cpp:149 #24 0x00007f0c41d92664 in QEventLoop::exec (this=0x7fffd95c4ea0, flags=...) at kernel/qeventloop.cpp:201 #25 0x00007f0c41d96aeb in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1064 #26 0x000000000040c3ce in main (argc=<optimized out>, argv=0x7fffd95c70e8) at /var/tmp/portage/dev-util/kdevelop-9999/work/kdevelop-9999/app/main.cpp:479 P.S.:if you want more info or if you want me to use earlier versions of kdevelop or in anyway more feedback,please let me know. ah, this is a duplicate report. also note that I fixed 284536 just a few minutes ago - please try to update and see if it still crashes. thanks *** This bug has been marked as a duplicate of bug 284536 *** kdevelop-4.2.3 doesn't crash. The master(after milian's patch) is still crashing Tsiapaliwkas: Please show an updated backtrace of master crashing and attach that information to bug 284536 the bug indicated by above backtrace is definitely fixed. *** Bug 289455 has been marked as a duplicate of this bug. *** This isn't a duplicate of bug 284536, as that clearly indicates a complete different backtrace. It still seems to crash in KDevelop::CodeHighlightingInstance::typeForDeclaration in current master, as reported by hippiehunter on #kdevelop. Backtrace (reduced): (gdb) bt full #0 0x00007ffff1a76ee0 in KDevelop::DUContext::type (this=0x7fff58002800) at /home/hippiehunter/git/kdevgit/kdevplatform/language/duchain/ducontext.cpp:1174 No locals. #1 0x00007ffff1bb8ee1 in KDevelop::CodeHighlightingInstance::typeForDeclaration (this=0x7fff582af9e0, dec=0x7fff58c7d870, context=0x3ee2000) at /home/hippiehunter/git/kdevgit/kdevplatform/language/highlighting/codehighlighting.cpp:373 type = KDevelop::HighlightingEnumContainer::LocalVariableType #2 0x00007ffff1bb93e8 in KDevelop::CodeHighlightingInstance::highlightUse ( this=0x7fff582af9e0, context=0x3ee2000, index=32, color=...) at /home/hippiehunter/git/kdevgit/kdevplatform/language/highlighting/codehighlighting.cpp:440 type = KDevelop::HighlightingEnumContainer::ErrorVariableType decl = 0x7fff58c7d870 #3 0x00007ffff1bb8881 in KDevelop::CodeHighlightingInstance::highlightDUChain (this=0x7fff582af9e0, context=0x3ee2000, colorsForDeclarations=..., declarationsForColors=...) at /home/hippiehunter/git/kdevgit/kdevplatform/language/highlighting/codehighlighting.cpp:279 decl = 0x7fff58c7d870 color = {cspec = QColor::Invalid, ct = {argb = {alpha = 65535, red = 0, green = 0, blue = 0, pad = 0}, ahsv = {alpha = 65535, ---Type <return> to continue, or q <return> to quit--- hue = 0, saturation = 0, value = 0, pad = 0}, acmyk = { alpha = 65535, cyan = 0, magenta = 0, yellow = 0, black = 0}, ahsl = {alpha = 65535, hue = 0, saturation = 0, lightness = 0, pad = 0}, array = {65535, 0, 0, 0, 0}}} a = 32 lock = {m_lock = 0x1847398, m_locked = true, m_timeout = 0} top = 0x3df32f0 takeFreeColors = {{p = {static shared_null = {ref = {_q_value = 1}, alloc = 0, begin = 0, end = 0, sharable = 1, array = {0x0}}, d = 0x624ea0 <QListData::shared_null>}, d = 0x624ea0 <QListData::shared_null>}} children = {{d = 0x7ffff60c0940 <QVectorData::shared_null>, p = 0x7ffff60c0940 <QVectorData::shared_null>}} #4 0x00007ffff1bb89fa in KDevelop::CodeHighlightingInstance::highlightDUChain (this=0x7fff582af9e0, context=0x3df32f0, colorsForDeclarations=..., declarationsForColors=...) at /home/hippiehunter/git/kdevgit/kdevplatform/language/highlighting/codehighlighting.cpp:292 child = 0x3ee2000 _container_ = {c = {{d = 0x7fff58cae240, p = 0x7fff58cae240}}, brk = 0, i = 0x7fff58cae2a0, e = 0x7fff58cae370} lock = {m_lock = 0x1847398, m_locked = false, m_timeout = 0} top = 0x3df32f0 ---Type <return> to continue, or q <return> to quit--- takeFreeColors = {{p = {static shared_null = {ref = {_q_value = 1}, alloc = 0, begin = 0, end = 0, sharable = 1, array = {0x0}}, d = 0x624ea0 <QListData::shared_null>}, d = 0x624ea0 <QListData::shared_null>}} children = {{d = 0x7fff58cae240, p = 0x7fff58cae240}} #5 0x00007ffff1bb7ff2 in KDevelop::CodeHighlightingInstance::highlightDUChain (this=0x7fff582af9e0, context=0x3df32f0) at /home/hippiehunter/git/kdevgit/kdevplatform/language/highlighting/codehighlighting.cpp:207 No locals. #6 0x00007ffff1bb7c8a in KDevelop::CodeHighlighting::highlightDUChain ( this=0x67d0e0, context=...) at /home/hippiehunter/git/kdevgit/kdevplatform/language/highlighting/codehighlighting.cpp:188 url = {m_index = 1230679} __PRETTY_FUNCTION__ = "virtual void KDevelop::CodeHighlighting::highlightDUChain(KDevelop::ReferencedTopDUContext)" highlighting = 0x7ffff1a5ccef <QHash<KDevelop::TopDUContext*, unsigned int>::findNode(KDevelop::TopDUContext* const&, unsigned int*) const+225> urlLock = {m_url = {m_index = 1230679}} lock = {m_lock = 0x1847398, m_locked = false, m_timeout = 0} revision = 2 Created attachment 80559 [details] New crash information added by DrKonqi kdevelop (4.5.60) on KDE Platform 4.10.3 using Qt 4.8.4 - What I was doing when the application crashed: editing inc/json_serialization.h in https://github.com/hippiehunter/reflectable at commit b5a1d9404a8973d4675312d8153e5427d628a184 requires boost 1.53, contains a CMakeLists.txt for importing a kdevelop project from on line 54 if you add an additional type parameter after ReflectableObject, it will crash every time, I am available in the IRC channel if any assistance is needed in reproducing this. -- Backtrace (Reduced): #5 0x00007fc33da15efc in KDevelop::DUContext::type (this=0x7fc28cb6bcc0) at /home/hippiehunter/git/kdevgit/kdevplatform/language/duchain/ducontext.cpp:1175 #6 0x00007fc33db58dd1 in KDevelop::CodeHighlightingInstance::typeForDeclaration (this=0x7fc28c14f8b0, dec=0x7fc28cf0f9b0, context=0x7fc28d59b930) at /home/hippiehunter/git/kdevgit/kdevplatform/language/highlighting/codehighlighting.cpp:373 #7 0x00007fc33db592d8 in KDevelop::CodeHighlightingInstance::highlightUse (this=0x7fc28c14f8b0, context=0x7fc28d59b930, index=36, color=...) at /home/hippiehunter/git/kdevgit/kdevplatform/language/highlighting/codehighlighting.cpp:440 #8 0x00007fc33db58771 in KDevelop::CodeHighlightingInstance::highlightDUChain (this=0x7fc28c14f8b0, context=0x7fc28d59b930, colorsForDeclarations=..., declarationsForColors=...) at /home/hippiehunter/git/kdevgit/kdevplatform/language/highlighting/codehighlighting.cpp:279 #9 0x00007fc33db588ea in KDevelop::CodeHighlightingInstance::highlightDUChain (this=0x7fc28c14f8b0, context=0x7fc28c002dd0, colorsForDeclarations=..., declarationsForColors=...) at /home/hippiehunter/git/kdevgit/kdevplatform/language/highlighting/codehighlighting.cpp:292 Confirmed, thanks for the steps on how to reproduce. I'll look into it now. Minimal testcase I could come up with so far: // add a comma after T here and wait and/or save and press f5 template<typename T> class foo { template<typename Tn> void bar() { } template<typename Tn> void asdf() { decltype(((foo<T>*)nullptr)->bar<Tn>()); } }; ==17564== Thread 7 ThreadWeaver::Thread: ==17564== Invalid read of size 8 ==17564== at 0xB60D55C: KDevelop::DUContext::d_func() const (ducontext.h:873) ==17564== by 0xB605494: KDevelop::DUContext::type() const (ducontext.cpp:1176) ==17564== by 0xB77EE56: KDevelop::CodeHighlightingInstance::typeForDeclaration(KDevelop::Declaration*, KDevelop::DUContext*) const (codehighlighting.cpp:373) ==17564== by 0xB77F5B5: KDevelop::CodeHighlightingInstance::highlightUse(KDevelop::DUContext*, int, QColor const&) (codehighlighting.cpp:445) ==17564== by 0xB77E703: KDevelop::CodeHighlightingInstance::highlightDUChain(KDevelop::DUContext*, QHash<KDevelop::Declaration*, unsigned int>, QVector<KDevelop::Declaration*>) (codehighlighting.cpp:279) ==17564== by 0xB77E8C9: KDevelop::CodeHighlightingInstance::highlightDUChain(KDevelop::DUContext*, QHash<KDevelop::Declaration*, unsigned int>, QVector<KDevelop::Declaration*>) (codehighlighting.cpp:292) ==17564== by 0xB77E8C9: KDevelop::CodeHighlightingInstance::highlightDUChain(KDevelop::DUContext*, QHash<KDevelop::Declaration*, unsigned int>, QVector<KDevelop::Declaration*>) (codehighlighting.cpp:292) finally got a valgrind backtrace! ==17564== by 0xB77DC5D: KDevelop::CodeHighlightingInstance::highlightDUChain(KDevelop::TopDUContext*) (codehighlighting.cpp:207) ==17564== by 0xB77D82F: KDevelop::CodeHighlighting::highlightDUChain(KDevelop::ReferencedTopDUContext) (codehighlighting.cpp:188) ==17564== by 0xB77DCCB: non-virtual thunk to KDevelop::CodeHighlighting::highlightDUChain(KDevelop::ReferencedTopDUContext) (codehighlighting.cpp:199) ==17564== by 0x2445726D: CPPInternalParseJob::run() (cppparsejob.cpp:727) ==17564== by 0x6017A51: ??? (in /usr/lib/libthreadweaver.so.4.11.3) ==17564== by 0x6017C0D: ThreadWeaver::Job::execute(ThreadWeaver::Thread*) (in /usr/lib/libthreadweaver.so.4.11.3) ==17564== by 0x60196AA: ??? (in /usr/lib/libthreadweaver.so.4.11.3) ==17564== by 0x601745A: ThreadWeaver::Thread::run() (in /usr/lib/libthreadweaver.so.4.11.3) ==17564== by 0x7EEBD8E: ??? (in /usr/lib/libQtCore.so.4.8.5) ==17564== by 0x835A0A1: start_thread (in /usr/lib/libpthread-2.18.so) ==17564== by 0x9FB649C: clone (in /usr/lib/libc-2.18.so) ==17564== Address 0x20e06af8 is 8 bytes inside a block of size 56 free'd ==17564== at 0x4C28EAC: operator delete(void*) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) ==17564== by 0x245C0151: Cpp::CppDUContext<KDevelop::DUContext>::~CppDUContext() (cppducontext.h:707) ==17564== by 0x245BD851: Cpp::CppDUContext<KDevelop::DUContext>::deleteAllInstantiations() (cppducontext.h:668) ==17564== by 0x245D5B6F: DeclarationBuilder::closeDeclaration(bool) (declarationbuilder.cpp:859) ==17564== by 0x245D789B: DeclarationBuilder::visitClassSpecifier(ClassSpecifierAST*) (declarationbuilder.cpp:1149) ==17564== by 0x245D79AE: non-virtual thunk to DeclarationBuilder::visitClassSpecifier(ClassSpecifierAST*) (declarationbuilder.cpp:1159) ==17564== by 0x2470DD79: Visitor::visit(AST*) (visitor.cpp:124) ==17564== by 0x2460AA08: TypeBuilder::visitSimpleDeclaration(SimpleDeclarationAST*) (typebuilder.cpp:677) ==17564== by 0x245D2AB0: DeclarationBuilder::visitSimpleDeclaration(SimpleDeclarationAST*) (declarationbuilder.cpp:349) ==17564== by 0x245D2B2E: non-virtual thunk to DeclarationBuilder::visitSimpleDeclaration(SimpleDeclarationAST*) (declarationbuilder.cpp:357) ==17564== by 0x2470DD79: Visitor::visit(AST*) (visitor.cpp:124) ==17564== by 0x245B7C59: ContextBuilder::visitTemplateDeclaration(TemplateDeclarationAST*) (contextbuilder.cpp:293) ==17564== by 0x245B7DBE: non-virtual thunk to ContextBuilder::visitTemplateDeclaration(TemplateDeclarationAST*) (contextbuilder.cpp:296) ==17564== by 0x2470DD79: Visitor::visit(AST*) (visitor.cpp:124) ==17564== by 0x2470ABC1: void visitNodes<DeclarationAST*>(Visitor*, ListNode<DeclarationAST*> const*) (visitor.h:139) ==17564== by 0x2470A1AB: DefaultVisitor::visitTranslationUnit(TranslationUnitAST*) (default_visitor.cpp:425) ==17564== by 0x2470DD79: Visitor::visit(AST*) (visitor.cpp:124) ==17564== by 0x245B7376: ContextBuilder::startVisiting(AST*) (contextbuilder.cpp:187) ==17564== by 0x245BE5A9: KDevelop::AbstractContextBuilder<AST, NameAST>::supportBuild(AST*, KDevelop::DUContext*) (abstractcontextbuilder.h:133) ==17564== by 0x245B8F7E: ContextBuilder::buildContexts(KSharedPtr<Cpp::EnvironmentFile>, AST*, QList<LineContextPair>*, KDevelop::ReferencedTopDUContext const&, bool) (contextbuilder.cpp:422) ==17564== by 0x245D091D: DeclarationBuilder::buildDeclarations(KSharedPtr<Cpp::EnvironmentFile>, AST*, QList<LineContextPair>*, KDevelop::ReferencedTopDUContext const&, bool) (declarationbuilder.cpp:95) ==17564== by 0x24456159: CPPInternalParseJob::run() (cppparsejob.cpp:636) ==17564== by 0x6017A51: ??? (in /usr/lib/libthreadweaver.so.4.11.3) ==17564== by 0x6017C0D: ThreadWeaver::Job::execute(ThreadWeaver::Thread*) (in /usr/lib/libthreadweaver.so.4.11.3) ==17564== by 0x60196AA: ??? (in /usr/lib/libthreadweaver.so.4.11.3) ==17564== by 0x601745A: ThreadWeaver::Thread::run() (in /usr/lib/libthreadweaver.so.4.11.3) ==17564== by 0x7EEBD8E: ??? (in /usr/lib/libQtCore.so.4.8.5) ==17564== by 0x835A0A1: start_thread (in /usr/lib/libpthread-2.18.so) ==17564== by 0x9FB649C: clone (in /usr/lib/libc-2.18.so) ==17564== Git commit 5b5e3703745ef12cd8b56eb8e86db93178ccd9f5 by Milian Wolff. Committed on 17/11/2013 at 02:08. Pushed by mwolff into branch '4.6'. Do not delete anonymous contexts of instantiations. This "fix" is ugly, but similar to what was done before in the declaration builder which we happily live with since years. So, better than crashing, lets workaround this nasty issue. M +6 -8 languages/cpp/cppduchain/cppducontext.h http://commits.kde.org/kdevelop/5b5e3703745ef12cd8b56eb8e86db93178ccd9f5 |