Package: kdevelop Version: 4:4.3.1-3+b1 Severity: normal Just updated to new libc+libstdc++ and it now starts to crash everytime I open a project with many C files. The culprit seems to be the cpp parser:
terminate called after throwing an instance of 'std::bad_alloc' what(): std::bad_alloc Program received signal SIGABRT, Aborted. [Switching to Thread 0x7fffb6ffd700 (LWP 25512)] 0x00007ffff507d295 in __GI_raise (sig=sig@entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56 56 ../nptl/sysdeps/unix/sysv/linux/raise.c: No such file or directory. (gdb) bt #0 0x00007ffff507d295 in __GI_raise (sig=sig@entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56 #1 0x00007ffff5080438 in __GI_abort () at abort.c:90 #2 0x00007ffff545a495 in __gnu_cxx::__verbose_terminate_handler() () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6 #3 0x00007ffff5458606 in ?? () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6 #4 0x00007ffff5458633 in std::terminate() () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6 #5 0x00007ffff545885e in __cxa_throw () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6 #6 0x00007ffff5458d5d in operator new(unsigned long) () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6 #7 0x00007fffbc48ce7d in ?? () from /usr/lib/libkdev4cppparser.so #8 0x00007fffbc4a0658 in std::_Hashtable<unsigned int, std::pair<unsigned int const, Parser::TokenMarkers>, std::allocator<std::pair<unsigned int const, Parser::TokenMarkers> >, std::_Select1st<std::pair<unsigned int const, Parser::TokenMarkers> >, std::equal_to<unsigned int>, std::hash<unsigned int>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, false, false, true>::_M_rehash_aux(unsigned long, std::integral_constant<bool, true>) () from /usr/lib/libkdev4cppparser.so #9 0x00007fffbc4a0794 in std::__detail::_Node_iterator<std::pair<unsigned int const, Parser::TokenMarkers>, false, false> std::_Hashtable<unsigned int, std::pair<unsigned int const, Parser::TokenMarkers>, std::allocator<std::pair<unsigned int const, Parser::TokenMarkers> >, std::_Select1st<std::pair<unsigned int const, Parser::TokenMarkers> >, std::equal_to<unsigned int>, std::hash<unsigned int>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, false, false, true>::_M_insert_bucket<std::pair<unsigned int, Parser::TokenMarkers> >(std::pair<unsigned int, Parser::TokenMarkers>&&, unsigned long, unsigned long) () from /usr/lib/libkdev4cppparser.so #10 0x00007fffbc48f658 in Parser::addTokenMarkers(unsigned int, Parser::TokenMarkers) () from /usr/lib/libkdev4cppparser.so #11 0x00007fffbc49314d in Parser::parseUnqualifiedName(UnqualifiedNameAST*&, bool) () from /usr/lib/libkdev4cppparser.so #12 0x00007fffbc49493b in Parser::parseName(NameAST*&, Parser::ParseNameAcceptTemplate) () from /usr/lib/libkdev4cppparser.so #13 0x00007fffbc492bcb in Parser::parseSimpleTypeSpecifier(TypeSpecifierAST*&, bool) () from /usr/lib/libkdev4cppparser.so #14 0x00007fffbc4954df in Parser::parseTypeSpecifier(TypeSpecifierAST*&) () from /usr/lib/libkdev4cppparser.so #15 0x00007fffbc498547 in Parser::parseCondition(ConditionAST*&, bool) () from /usr/lib/libkdev4cppparser.so #16 0x00007fffbc49bde3 in Parser::parseIfStatement(StatementAST*&) () from /usr/lib/libkdev4cppparser.so #17 0x00007fffbc48fbe5 in Parser::parseStatement(StatementAST*&) () from /usr/lib/libkdev4cppparser.so #18 0x00007fffbc48fdb6 in Parser::parseCompoundStatement(StatementAST*&) () from /usr/lib/libkdev4cppparser.so #19 0x00007fffbc49950c in Parser::parseFunctionDefinitionInternal(DeclarationAST*&, unsigned int, WinDeclSpecAST*, ListNode<unsigned int> const*, ListNode<unsigned int> const*, TypeSpecifierAST*) () from /usr/lib/libkdev4cppparser.so #20 0x00007fffbc49984d in Parser::parseDeclarationInternal(DeclarationAST*&) () from /usr/lib/libkdev4cppparser.so #21 0x00007fffbc49a8ac in Parser::parseDeclaration(DeclarationAST*&) () from /usr/lib/libkdev4cppparser.so #22 0x00007fffbc49b319 in Parser::parseTranslationUnit(TranslationUnitAST*&) () from /usr/lib/libkdev4cppparser.so #23 0x00007fffbc49b42b in Parser::parse(ParseSession*) () from /usr/lib/libkdev4cppparser.so #24 0x00007fffbcc53161 in ?? () from /usr/lib/kde4/kdevcpplanguagesupport.so #25 0x00007fffedd581ba in ?? () from /usr/lib/libthreadweaver.so.4 #26 0x00007fffedd58331 in ThreadWeaver::Job::execute(ThreadWeaver::Thread*) () from /usr/lib/libthreadweaver.so.4 #27 0x00007fffedd59343 in ?? () from /usr/lib/libthreadweaver.so.4 #28 0x00007fffedd5798f in ?? () from /usr/lib/libthreadweaver.so.4 #29 0x00007fffedd57a4b in ThreadWeaver::Thread::run() () from /usr/lib/libthreadweaver.so.4 #30 0x00007ffff6435d0b in ?? () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4 #31 0x00007ffff44a8e0e in start_thread (arg=0x7fffb6ffd700) at pthread_create.c:311 #32 0x00007ffff513093d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:113 Here the output of valgrind ==25524== Warning: set address range perms: large range [0x3a0a6000, 0x7a0a6000) (defined) ==25524== Invalid read of size 8 ==25524== at 0x6A2FB8A: ??? (in /usr/lib/x86_64-linux-gnu/libQtGui.so.4.8.2) ==25524== by 0x6BFA00C: ??? (in /usr/lib/x86_64-linux-gnu/libQtGui.so.4.8.2) ==25524== by 0x6C03B75: ??? (in /usr/lib/x86_64-linux-gnu/libQtGui.so.4.8.2) ==25524== by 0x6B8666C: QPainter::drawPixmap(QPointF const&, QPixmap const&) (in /usr/lib/x86_64-linux-gnu/libQtGui.so.4.8.2) ==25524== by 0x197F775A: ??? (in /usr/lib/kde4/plugins/styles/oxygen.so) ==25524== by 0x197CEA84: ??? (in /usr/lib/kde4/plugins/styles/oxygen.so) ==25524== by 0x197CF5BD: ??? (in /usr/lib/kde4/plugins/styles/oxygen.so) ==25524== by 0x197CC903: ??? (in /usr/lib/kde4/plugins/styles/oxygen.so) ==25524== by 0x6E7BC14: QProgressBar::paintEvent(QPaintEvent*) (in /usr/lib/x86_64-linux-gnu/libQtGui.so.4.8.2) ==25524== by 0x6A86DC1: QWidget::event(QEvent*) (in /usr/lib/x86_64-linux-gnu/libQtGui.so.4.8.2) ==25524== by 0x6E7C6F6: QProgressBar::event(QEvent*) (in /usr/lib/x86_64-linux-gnu/libQtGui.so.4.8.2) ==25524== by 0x6A3770B: QApplicationPrivate::notify_helper(QObject*, QEvent*) (in /usr/lib/x86_64-linux-gnu/libQtGui.so.4.8.2) ==25524== Address 0x1962ff48 is 0 bytes after a block of size 728 alloc'd ==25524== at 0x4C2C26B: malloc (vg_replace_malloc.c:270) ==25524== by 0x6AEE8E5: QImageData::create(QSize const&, QImage::Format, int) (in /usr/lib/x86_64-linux-gnu/libQtGui.so.4.8.2) ==25524== by 0x6AEEE1A: QImage::QImage(int, int, QImage::Format) (in /usr/lib/x86_64-linux-gnu/libQtGui.so.4.8.2) ==25524== by 0x6B160C6: QRasterPixmapData::resize(int, int) (in /usr/lib/x86_64-linux-gnu/libQtGui.so.4.8.2) ==25524== by 0x6B0E67E: QPixmapData::create(int, int, QPixmapData::PixelType) (in /usr/lib/x86_64-linux-gnu/libQtGui.so.4.8.2) ==25524== by 0x6B06DE6: QPixmap::init(int, int, int) (in /usr/lib/x86_64-linux-gnu/libQtGui.so.4.8.2) ==25524== by 0x6B08167: QPixmap::QPixmap(QSize const&) (in /usr/lib/x86_64-linux-gnu/libQtGui.so.4.8.2) ==25524== by 0x197F72FD: ??? (in /usr/lib/kde4/plugins/styles/oxygen.so) ==25524== by 0x197CEA84: ??? (in /usr/lib/kde4/plugins/styles/oxygen.so) ==25524== by 0x197CF5BD: ??? (in /usr/lib/kde4/plugins/styles/oxygen.so) ==25524== by 0x197CC903: ??? (in /usr/lib/kde4/plugins/styles/oxygen.so) ==25524== by 0x6E7BC14: QProgressBar::paintEvent(QPaintEvent*) (in /usr/lib/x86_64-linux-gnu/libQtGui.so.4.8.2) ==25524== **25524** new/new[] failed and should throw an exception, but Valgrind **25524** cannot throw exceptions and so is aborting instead. Sorry. ==25524== at 0x4C2958C: VALGRIND_PRINTF_BACKTRACE (valgrind.h:4550) ==25524== by 0x4C2BD16: operator new(unsigned long) (vg_replace_malloc.c:298) ==25524== by 0x7B6FAE7C: ??? (in /usr/lib/libkdev4cppparser.so) ==25524== by 0x7B70E657: std::_Hashtable<unsigned int, std::pair<unsigned int const, Parser::TokenMarkers>, std::allocator<std::pair<unsigned int const, Parser::TokenMarkers> >, std::_Select1st<std::pair<unsigned int const, Parser::TokenMarkers> >, std::equal_to<unsigned int>, std::hash<unsigned int>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, false, false, true>::_M_rehash_aux(unsigned long, std::integral_constant<bool, true>) (in /usr/lib/libkdev4cppparser.so) ==25524== by 0x7B70E793: std::__detail::_Node_iterator<std::pair<unsigned int const, Parser::TokenMarkers>, false, false> std::_Hashtable<unsigned int, std::pair<unsigned int const, Parser::TokenMarkers>, std::allocator<std::pair<unsigned int const, Parser::TokenMarkers> >, std::_Select1st<std::pair<unsigned int const, Parser::TokenMarkers> >, std::equal_to<unsigned int>, std::hash<unsigned int>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, false, false, true>::_M_insert_bucket<std::pair<unsigned int, Parser::TokenMarkers> >(std::pair<unsigned int, Parser::TokenMarkers>&&, unsigned long, unsigned long) (in /usr/lib/libkdev4cppparser.so) ==25524== by 0x7B6FD657: Parser::addTokenMarkers(unsigned int, Parser::TokenMarkers) (in /usr/lib/libkdev4cppparser.so) ==25524== by 0x7B70114C: Parser::parseUnqualifiedName(UnqualifiedNameAST*&, bool) (in /usr/lib/libkdev4cppparser.so) ==25524== by 0x7B70293A: Parser::parseName(NameAST*&, Parser::ParseNameAcceptTemplate) (in /usr/lib/libkdev4cppparser.so) ==25524== by 0x7B700BCA: Parser::parseSimpleTypeSpecifier(TypeSpecifierAST*&, bool) (in /usr/lib/libkdev4cppparser.so) ==25524== by 0x7B7034DE: Parser::parseTypeSpecifier(TypeSpecifierAST*&) (in /usr/lib/libkdev4cppparser.so) ==25524== by 0x7B706546: Parser::parseCondition(ConditionAST*&, bool) (in /usr/lib/libkdev4cppparser.so) ==25524== by 0x7B709DE2: Parser::parseIfStatement(StatementAST*&) (in /usr/lib/libkdev4cppparser.so) An example C file with this problem is attached (seems to be related to the if expression parsing). --- System information. --- Architecture: amd64 Kernel: Linux 3.8-1-amd64 Debian Release: jessie/sid 500 unstable http.debian.net 500 testing www.deb-multimedia.org 500 stable security.debian.org 500 stable http.debian.net 1 experimental http.debian.net --- Package information. --- Depends (Version) | Installed =======================================================-+-====================== kde-runtime | 4:4.10.2-2 kdevplatform5-libs (>= 1.3.1) | 1.3.1-2 libc6 (>= 2.4) | libgcc1 (>= 1:4.1.1) | libkasten1controllers1 (>= 4:4.8.4) | libkasten1core1 (>= 4:4.8.4) | libkasten1okteta1controllers1 (>= 4:4.8.4) | libkasten1okteta1core1 (>= 4:4.8.4) | libkasten1okteta1gui1 (>= 4:4.8.4) | libkcmutils4 (>= 4:4.4.95) | libkdecore5 (>= 4:4.4.95) | libkdeui5 (>= 4:4.3.4) | libkio5 (>= 4:4.3.4) | libkparts4 (>= 4:4.3.4) | libktexteditor4 (>= 4:4.4.95) | libplasma3 (>= 4:4.4.4-2~) | libprocessui4a (>= 4:4.6.1) | libqt4-dbus (>= 4:4.6.1) | libqt4-help (>= 4:4.5.3) | libqt4-network (>= 4:4.5.3) | libqt4-script (>= 4:4.5.3) | libqtcore4 (>= 4:4.8.0) | libqtgui4 (>= 4:4.5.3) | libqtwebkit4 (>= 2.1.0~2011week13) | libstdc++6 (>= 4.6) | libsublime5 (>= 1.3.1) | libthreadweaver4 (>= 4:4.3.4) | kdevelop-data (>= 4:4.3.1-3) | Recommends (Version) | Installed =========================-+-=========== gcc | 4:4.7.2-1 g++ | 4:4.7.2-1 make | 3.81-8.2 gdb (>= 7.0) | 7.4.1+dfsg-0.1 Suggests (Version) | Installed ============================-+-=========== cmake | 2.8.9-1 kapptemplate | 4:4.8.4+dfsg-1 kdevelop-l10n |
int main(int argc, char *argv[]) { if (argc < 1) return 1; return 0; }