Summary: | kdevelop crashs during editing some files | ||
---|---|---|---|
Product: | [Developer tools] kdevplatform | Reporter: | sts |
Component: | language | Assignee: | kdevelop-bugs-null |
Status: | RESOLVED FIXED | ||
Severity: | crash | CC: | david.nolden.kde, niko.sams, the.masch |
Priority: | HI | ||
Version: | unspecified | ||
Target Milestone: | 1.0.0 | ||
Platform: | Unlisted Binaries | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | ||
Attachments: | project showing the behaviour |
Description
sts
2009-06-28 23:39:06 UTC
Can you reproduce that? looking at the backtrace it has nothing to do with php Created attachment 35488 [details]
project showing the behaviour
I could reproduce that behaviour with the attached testcase, supplied by masch on IRC.
To reproduce:
1) Open both projects.
2) Open test1/main.cpp
3) From the project view and the test2 target open both main.cpp
one of them is test1/main.cpp. When you open that one, kdevelop crashes with the BT above.
I debugged it a bit and saw that both documents had different pointers but their urls returned the same. I don't really know where that bug lays, shouldn't documents rely on the URL?
What's the exact assertion that triggers? The line numbers are bogus for some reason ///Make the standard-context editor-smart SmartConverter sc(&editor); if(standardContext->smartRange()) { Q_ASSERT(standardContext->smartRange()->document() == doc->textDocument()); kWarning() << "Strange: context already has smart-range! Probably another document is already open for it. Deconverting"; sc.deconvertDUChain(standardContext); } I can reproduce at will and could produce a new backtrace if you want. Yeap, reproduceable here as well, however I think the real problem is with the project manager or some other logic somewhere as I get a dialog that KDevelop cannot find the document for the file and wether it should open it as plain text. (IIRC this was recently added by adymo). And then it crashes. Also the hovering info on the project tree for both main.cpp entries show test1/main.cpp. Backtrace: (gdb) bt #0 0xf60895c6 in raise () from /lib/libc.so.6 #1 0xf608cac5 in abort () from /lib/libc.so.6 #2 0xf6d3d3ed in qt_message_output(QtMsgType, char const*) () from /usr/lib/libQtCore.so.4 #3 0xf6d3d4d1 in qFatal(char const*, ...) () from /usr/lib/libQtCore.so.4 #4 0xf6d3d5c5 in qt_assert(char const*, char const*, int) () from /usr/lib/libQtCore.so.4 #5 0xf5ba57dd in KDevelop::DUChain::documentLoadedPrepare (this=0x87b8850, doc=0xa44c2b0) at /home/andreas/src/kdevplatform/language/duchain/duchain.cpp:1457 #6 0xf5ba6e85 in KDevelop::DUChain::qt_metacall (this=0x87b8850, _c=QMetaObject::InvokeMetaMethod, _id=6, _a=0xffa8c7ac) at /home/andreas/src/build/kdevplatform/language/duchain.moc:162 #7 0xf6e4bad3 in QMetaObject::activate(QObject*, int, int, void**) () from /usr/lib/libQtCore.so.4 #8 0xf6e4c722 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/libQtCore.so.4 #9 0xf7cf1f18 in KDevelop::IDocumentController::documentLoadedPrepare (this=0x874a8c8, _t1=0xa44c2b0) at /home/andreas/src/build/kdevplatform/interfaces/idocumentcontroller.moc:239 #10 0xf7ceef90 in KDevelop::IDocument::notifyLoaded (this=0xa44c2b0) at /home/andreas/src/kdevplatform/interfaces/idocument.cpp:119 #11 0xf7c6afa7 in KDevelop::TextDocumentPrivate::slotDocumentLoaded (this=0xa0d4468) at /home/andreas/src/kdevplatform/shell/textdocument.cpp:154 #12 0xf7c6798b in KDevelop::TextDocument::qt_metacall (this=0xa44c2a0, _c=QMetaObject::InvokeMetaMethod, _id=5, _a=0xffa8c8dc) at /home/andreas/src/build/kdevplatform/shell/textdocument.moc:86 #13 0xf6e4bad3 in QMetaObject::activate(QObject*, int, int, void**) () from /usr/lib/libQtCore.so.4 #14 0xf6e4c722 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/libQtCore.so.4 #15 0xf78d2f83 in KTextEditor::Document::textChanged(KTextEditor::Document*) () from /usr/lib/libktexteditor.so.4 #16 0xe1da557e in ?? () from /usr/lib/kde4/katepart.so #17 0x096f0158 in ?? () #18 0x096f0158 in ?? () #19 0x00000000 in ?? () SVN commit 1002542 by zwabel: - Don't crash when re-opening a document that has an unclean path: Clean the path before checking whether the document is already open. BUG: 198219 BUG: 201377 M +21 -18 documentcontroller.cpp M +1 -5 workingsetcontroller.cpp WebSVN link: http://websvn.kde.org/?view=rev&revision=1002542 |