CodeModel Assertion after about 5500 declarations in one file

Niko Sams niko.sams at gmail.com
Sat Sep 20 14:26:02 UTC 2008


Hi,

I updated this large file for all internal php functions/constants and
added constants.
Now there are quite many declarations in this file (about 7000)

To reproduce the problem checkout kdevel4-extra-plugins/php
and run duchain/tests/duchaintest (is quite slow because of the large file)

See backtrace below for the Assertion I get.
What I found out so far is that it asserts after
ZIPARCHIVE::CM_DEFLATE declaration.
If I remove one function before that class it asserts one line later.

Any ideas?

Niko


QFATAL : Php::TestDUChain::testInternalFunctions() ASSERT:
"d->m_repository.findIndex(request)" in file
/home/niko/kde/kdevplatform/language/duchain/codemodel.cpp, line 187
FAIL!  : Php::TestDUChain::testInternalFunctions() Received a fatal error.
   Loc: [Unknown file(0)]
Totals: 1 passed, 1 failed, 0 skipped
********* Finished testing of Php::TestDUChain *********

Program received signal SIGABRT, Aborted.
[Switching to Thread 0xb5a1a6d0 (LWP 21946)]
0xffffe424 in __kernel_vsyscall ()
(gdb) bt
#0  0xffffe424 in __kernel_vsyscall ()
#1  0xb6512101 in raise () from /lib/libc.so.6
#2  0xb65138e8 in abort () from /lib/libc.so.6
#3  0xb728d295 in qt_message_output (msgType=QtFatalMsg,
    buf=0xbfd5f21c "ASSERT: \"d->m_repository.findIndex(request)\" in
file /home/niko/kde/kdevplatform/language/duchain/codemodel.cpp, line
187")
    at global/qglobal.cpp:2061
#4  0xb728d35a in qFatal (msg=0xb73d6bf8 "ASSERT: \"%s\" in file %s,
line %d") at global/qglobal.cpp:2263
#5  0xb728d3f5 in qt_assert (assertion=0xb7e806d8
"d->m_repository.findIndex(request)",
    file=0xb7e7ffe0
"/home/niko/kde/kdevplatform/language/duchain/codemodel.cpp",
line=187) at global/qglobal.cpp:1831
#6  0xb7da6878 in KDevelop::CodeModel::addItem (this=0xb7e912a0,
file=@0xbfd613b8, id=@0xbfd613b4,
kind=KDevelop::CodeModelItem::Variable)
    at /home/niko/kde/kdevplatform/language/duchain/codemodel.cpp:187
#7  0xb7dfa427 in KDevelop::Declaration::setInSymbolTable
(this=0x96c5090, inSymbolTable=true)
    at /home/niko/kde/kdevplatform/language/duchain/declaration.cpp:594
#8  0xb7dfafed in KDevelop::Declaration::setIdentifier
(this=0x96c5090, identifier=@0xbfd6147c)
    at /home/niko/kde/kdevplatform/language/duchain/declaration.cpp:276
#9  0xb7f0c1fd in KDevelop::AbstractDeclarationBuilder<Php::AstNode,
Php::IdentifierAst,
Php::TypeBuilder>::openDeclaration<KDevelop::ClassMemberDeclaration>
(this=0xbfd61c18, id=@0xbfd61500, newRange=@0xbfd6150c,
    flags=KDevelop::AbstractDeclarationBuilder<Php::AstNode,Php::IdentifierAst,Php::TypeBuilder>::DeclarationIsDefinition)
    at /usr/local/include/kdevplatform/language/duchain/builders/abstractdeclarationbuilder.h:140
#10 0xb7f0c3f4 in KDevelop::AbstractDeclarationBuilder<Php::AstNode,
Php::IdentifierAst,
Php::TypeBuilder>::openDeclaration<KDevelop::ClassMemberDeclaration>
(this=0xbfd61c18, name=0xb4502774, range=0xb4502774,
    flags=KDevelop::AbstractDeclarationBuilder<Php::AstNode,Php::IdentifierAst,Php::TypeBuilder>::DeclarationIsDefinition)
    at /usr/local/include/kdevplatform/language/duchain/builders/abstractdeclarationbuilder.h:82
#11 0xb7f0c449 in KDevelop::AbstractDeclarationBuilder<Php::AstNode,
Php::IdentifierAst,
Php::TypeBuilder>::openDefinition<KDevelop::ClassMemberDeclaration>
    (this=0xbfd61c18, name=0xb4502774, range=0xb4502774) at
/usr/local/include/kdevplatform/language/duchain/builders/abstractdeclarationbuilder.h:159
#12 0xb7eaa449 in KDevelop::AbstractDeclarationBuilder<Php::AstNode,
Php::IdentifierAst,
Php::TypeBuilder>::openDefinition<KDevelop::ClassMemberDeclaration>
    (this=0xbfd013e8, name=0xb44a0774, range=0xb44a0774) at
/usr/local/include/kdevplatform/language/duchain/builders/abstractdeclarationbuilder.h:159
#13 0xb7ea28a4 in
Php::DeclarationBuilder::visitClassConstantDeclaration
(this=0xbfd013e8, node=0xb44a0754)
    at /home/niko/kde/kdevelop4-extra-plugins/php/duchain/declarationbuilder.cpp:216
#14 0xb7ea337c in Php::Visitor::visitNode (this=0xbfd01418,
node=0xb44a0754) at
/home/niko/kde/kdevelop4-extra-plugins/php/build/parser/phpvisitor.h:22
#15 0xb7e6c2e4 in Php::DefaultVisitor::visitClassStatement
(this=0xbfd01418, node=0xb44a0724)
    at /home/niko/kde/kdevelop4-extra-plugins/php/build/parser/phpdefaultvisitor.cpp:245
#16 0xb7eab291 in Php::ContextBuilder::visitClassStatement
(this=0xbfd013e8, node=0xb44a0724)
    at /home/niko/kde/kdevelop4-extra-plugins/php/duchain/contextbuilder.cpp:160
#17 0xb7eaf9fd in Php::TypeBuilder::visitClassStatement
(this=0xbfd013e8, node=0xb44a0724)
    at /home/niko/kde/kdevelop4-extra-plugins/php/duchain/typebuilder.cpp:120
#18 0xb7ea2fad in Php::DeclarationBuilder::visitClassStatement
(this=0xbfd013e8, node=0xb44a0724)
    at /home/niko/kde/kdevelop4-extra-plugins/php/duchain/declarationbuilder.cpp:144
#19 0xb7ea337c in Php::Visitor::visitNode (this=0xbfd01418,
node=0xb44a0724) at
/home/niko/kde/kdevelop4-extra-plugins/php/build/parser/phpvisitor.h:22
#20 0xb7e6d460 in Php::DefaultVisitor::visitClassBody
(this=0xbfd01418, node=0xb449fa88)
    at /home/niko/kde/kdevelop4-extra-plugins/php/build/parser/phpdefaultvisitor.cpp:197
#21 0xb7ea337c in Php::Visitor::visitNode (this=0xbfd01418,
node=0xb449fa88) at
/home/niko/kde/kdevelop4-extra-plugins/php/build/parser/phpvisitor.h:22
#22 0xb7e6c25c in Php::DefaultVisitor::visitClassDeclarationStatement
(this=0xbfd01418, node=0xb449fa40)
    at /home/niko/kde/kdevelop4-extra-plugins/php/build/parser/phpdefaultvisitor.cpp:215
#23 0xb7eab38b in Php::ContextBuilder::visitClassDeclarationStatement
(this=0xbfd013e8, node=0xb449fa40)
    at /home/niko/kde/kdevelop4-extra-plugins/php/duchain/contextbuilder.cpp:125
#24 0xb7eaf3cf in Php::TypeBuilder::visitClassDeclarationStatement
(this=0xbfd013e8, node=0xb449fa40)
    at /home/niko/kde/kdevelop4-extra-plugins/php/duchain/typebuilder.cpp:80
#25 0xb7ea21df in
Php::DeclarationBuilder::visitClassDeclarationStatement
(this=0xbfd013e8, node=0xb449fa40)
    at /home/niko/kde/kdevelop4-extra-plugins/php/duchain/declarationbuilder.cpp:81




More information about the KDevelop-devel mailing list