KDevelop 5.6 beta 1 released - "QFSFileEngine::open: No file name specified"

René J.V. Bertin rjvbertin at gmail.com
Thu Sep 3 14:36:41 BST 2020


Hi,

Here's another observation of which I'm not certain it's a bug: I'm getting regular messages "QFSFileEngine::open: No file name specified" on the calling terminal.

It looks like these are produced when (certain?) context browser popups are triggered. I'm copying a backtrace below, which is almost exclusively a Qt affair (Qt 5.9.8 here). The lowest call in KDevelop code just seems to make an already existing tooltip visible. (I do patch that function, but only to cache cursorPos instead of calling QCursor::pos() repeatedly - that should be unrelated as long as the mouse doesn't move ... which it doesn't if you want to get a tooltip.)

Going up to frame #3 in the backtrace I could get the filename, which clearly is not a file that resides on disk (does KDevelop 5.6 try to show images in context browser tooltips?)
"data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAADEtGw7AAAACXBIWXMAAA7EAAAO6wGHNzZ2AAAHsUlEQVQ4EQGmB1n4AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANU5KxIGAvtSAQYGWwAAACUB/f4QAAAAAP8DAvAA/wDa//v7pQYBBq4fxNPvAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAMwzM..."

(lldb) c
Process 7016 resuming
(lldb) QFSFileEngine::open: No file name specified
Process 7016 stopped
* thread #1, name = 'kdevelop', stop reason = breakpoint 3.1
    frame #0: 0x00007fd336483bbe libQt5Core.so.5`QFSFileEngine::open(this=0x000000000715f0e0, openMode=<unavailable>) at qfsfileengine.cpp:201:9
   198      Q_D(QFSFileEngine);
   199      if (d->fileEntry.isEmpty()) {
   200          qWarning("QFSFileEngine::open: No file name specified");
-> 201          setError(QFile::OpenError, QLatin1String("No file name specified"));
   202          return false;
   203      }
   204 
(lldb) bt
* thread #1, name = 'kdevelop', stop reason = breakpoint 3.1
  * frame #0: 0x00007fd336483bbe libQt5Core.so.5`QFSFileEngine::open(this=0x000000000715f0e0, openMode=<unavailable>) at qfsfileengine.cpp:201:9
    frame #1: 0x00007fd336441e2a libQt5Core.so.5`QFile::open(this=0x00007ffd18de5560, mode=<unavailable>) at qfile.cpp:891:22
    frame #2: 0x00007fd3382bdf62 libQt5Widgets.so.5`QTextBrowser::loadResource(this=<unavailable>, (null)=<unavailable>, name=<unavailable>) at qtextbrowser.cpp:1093:11
    frame #3: 0x00007fd3382cd645 libQt5Widgets.so.5`QWidgetTextControl::loadResource(this=<unavailable>, type=2, name="data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAADEtGw7AAAACXBIWXMAAA7EAAAO6wGHNzZ2AAAHsUlEQVQ4EQGmB1n4AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANU5KxIGAvtSAQYGWwAAACUB/f4QAAAAAP8DAvAA/wDa//v7pQYBBq4fxNPvAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAMwzM...") at qwidgettextcontrol.cpp:1362:26
    frame #4: 0x00007fd3382d3a1e libQt5Widgets.so.5`QWidgetTextControl::qt_static_metacall(_o=0x0000000009f4af10, _c=<unavailable>, _id=<unavailable>, _a=0x00007ffd18de5740) at moc_qwidgettextcontrol_p.cpp:295:38
    frame #5: 0x00007fd33650da1e libQt5Core.so.5`QMetaMethod::invoke(this=<unavailable>, object=0x0000000009f4af10, connectionType=<unavailable>, returnValue=<unavailable>, val0=(_data = 0x00007ffd18de58cc, _name = "int"), val1=(_data = 0x00007ffd18de5998, _name = "QUrl"), val2=(_data = 0x0000000000000000, _name = 0x0000000000000000), val3=(_data = 0x0000000000000000, _name = 0x0000000000000000), val4=(_data = 0x0000000000000000, _name = 0x0000000000000000), val5=(_data = 0x0000000000000000, _name = 0x0000000000000000), val6=(_data = 0x0000000000000000, _name = 0x0000000000000000), val7=(_data = 0x0000000000000000, _name = 0x0000000000000000), val8=(_data = 0x0000000000000000, _name = 0x0000000000000000), val9=(_data = 0x0000000000000000, _name = 0x0000000000000000)) const at qmetaobject.cpp:2311:13
    frame #6: 0x00007fd3375fad1a libQt5Gui.so.5`QTextDocument::loadResource(int, QUrl const&) [inlined] QMetaMethod::invoke(object=<unavailable>, returnValue=<unavailable>, val0=<unavailable>) const at qmetaobject.h:106:16
    frame #7: 0x00007fd3375fac1f libQt5Gui.so.5`QTextDocument::loadResource(this=<unavailable>, type=<unavailable>, name="data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAADEtGw7AAAACXBIWXMAAA7EAAAO6wGHNzZ2AAAHsUlEQVQ4EQGmB1n4AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANU5KxIGAvtSAQYGWwAAACUB/f4QAAAAAP8DAvAA/wDa//v7pQYBBq4fxNPvAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAMwzM...") at qtextdocument.cpp:2161
    frame #8: 0x00007fd3375fab0e libQt5Gui.so.5`QTextDocument::resource(this=0x0000000009b877c0, type=2, name=<unavailable>) const at qtextdocument.cpp:2103:52
    frame #9: 0x00007fd33763b9bc libQt5Gui.so.5`getPixmap(doc=0x0000000009b877c0, format=<unavailable>, devicePixelRatio=1) at qtextimagehandler.cpp:90:32
    frame #10: 0x00007fd33763b1f5 libQt5Gui.so.5`QTextImageHandler::intrinsicSize(QTextDocument*, int, QTextFormat const&) [inlined] getPixmapSize(doc=<unavailable>, format=<unavailable>) at qtextimagehandler.cpp:153:18
    frame #11: 0x00007fd33763af80 libQt5Gui.so.5`QTextImageHandler::intrinsicSize(this=<unavailable>, doc=<unavailable>, posInDocument=<unavailable>, format=<unavailable>) at qtextimagehandler.cpp:244
    frame #12: 0x00007fd337628805 libQt5Gui.so.5`QTextDocumentLayout::resizeInlineObject(this=<unavailable>, item=QTextInlineObject @ 0x00007ffd18de5b78, posInDocument=1, format=0x00007ffd18de5c08) at qtextdocumentlayout.cpp:3047:39
    frame #13: 0x00007fd3375d1336 libQt5Gui.so.5`QTextEngine::shape(this=0x000000000715f9b0, item=0) const at qtextengine.cpp:1555:26
    frame #14: 0x00007fd3375e6ae4 libQt5Gui.so.5`QTextLine::layout_helper(this=0x00007ffd18de5e50, maxGlyphs=<unavailable>) at qtextlayout.cpp:1837:22
    frame #15: 0x00007fd337626515 libQt5Gui.so.5`QTextDocumentLayoutPrivate::layoutBlock(this=0x00000000096dad10, bl=<unavailable>, blockPosition=<unavailable>, blockFormat=0x00007ffd18de60a0, layoutStruct=0x00007ffd18de6438, layoutFrom=384, layoutTo=<unavailable>, previousBlockFormat=<unavailable>) at qtextdocumentlayout.cpp:2680:22
    frame #16: 0x00007fd33761f6a9 libQt5Gui.so.5`QTextDocumentLayoutPrivate::layoutFlow(this=<unavailable>, it=<unavailable>, layoutStruct=<unavailable>, layoutFrom=<unavailable>, layoutTo=<unavailable>, width=<unavailable>) at qtextdocumentlayout.cpp:2464:13
    frame #17: 0x00007fd33761ea8e libQt5Gui.so.5`QTextDocumentLayoutPrivate::layoutCell(this=0x00000000096dad10, t=0x0000000006c1d220, cell=0x00007ffd18de63b0, width=<unavailable>, layoutFrom=<unavailable>, layoutTo=<unavailable>, td=<unavailable>, absoluteTableY=<unavailable>, withPageBreaks=<unavailable>) at qtextdocumentlayout.cpp:1577:5
    frame #18: 0x00007fd337621d24 libQt5Gui.so.5`QTextDocumentLayoutPrivate::layoutTable(this=<unavailable>, table=<unavailable>, layoutFrom=<unavailable>, layoutTo=<unavailable>, parentY=<unavailable>) at qtextdocumentlayout.cpp:1685:46
    frame #19: 0x00007fd3376259f6 libQt5Gui.so.5`QTextDocumentLayoutPrivate::layoutFrame(this=0x00000000096dad10, f=0x0000000006c1d220, layoutFrom=0, layoutTo=2147483647, frameWidth=<unavailable>, frameHeight=<unavailable>, parentY=<unavailable>) at qtextdocumentlayout.cpp:2169:16
    frame #20: 0x00007fd3376254ad libQt5Gui.so.5`QTextDocumentLayoutPrivate::layoutFrame(this=<unavailable>, f=0x0000000006c1d220, layoutFrom=<unavailable>, layoutTo=<unavailable>, parentY=<unavailable>) at qtextdocumentlayout.cpp:2094:12
    frame #21: 0x00007fd33762011a libQt5Gui.so.5`QTextDocumentLayoutPrivate::layoutFlow(this=<unavailable>, it=(f = 0x00007ffd18de6d68, b = 417229616, e = 0, cf = 0x000000000715ec70, cb = 5), layoutStruct=0x00007ffd18de6cb8, layoutFrom=0, layoutTo=2147483647, width=<unavailable>) at qtextdocumentlayout.cpp:2373:25
    frame #22: 0x00007fd337625bd3 libQt5Gui.so.5`QTextDocumentLayoutPrivate::layoutFrame(this=0x00000000096dad10, f=0x00000000046047a0, layoutFrom=0, layoutTo=2147483647, frameWidth=<unavailable>, frameHeight=<unavailable>, parentY=<unavailable>) at qtextdocumentlayout.cpp:2205:5
    frame #23: 0x00007fd3376254ad libQt5Gui.so.5`QTextDocumentLayoutPrivate::layoutFrame(this=<unavailable>, f=0x00000000046047a0, layoutFrom=<unavailable>, layoutTo=<unavailable>, parentY=<unavailable>) at qtextdocumentlayout.cpp:2094:12
    frame #24: 0x00007fd337627e1c libQt5Gui.so.5`QTextDocumentLayout::doLayout(this=0x00000000053a3ab0, from=0, oldLength=<unavailable>, length=<unavailable>) at qtextdocumentlayout.cpp:3001:25
    frame #25: 0x00007fd337627997 libQt5Gui.so.5`QTextDocumentLayout::documentChanged(int, int, int) [inlined] QTextDocumentLayoutPrivate::ensureLayoutedByPosition(this=<unavailable>, position=1000) const at qtextdocumentlayout.cpp:3173:54
    frame #26: 0x00007fd33762797b libQt5Gui.so.5`QTextDocumentLayout::documentChanged(int, int, int) [inlined] QTextDocumentLayoutPrivate::layoutStep(this=<unavailable>) const at qtextdocumentlayout.cpp:3179
    frame #27: 0x00007fd33762795d libQt5Gui.so.5`QTextDocumentLayout::documentChanged(this=0x00000000053a3ab0, from=0, oldLength=0, length=2101) at qtextdocumentlayout.cpp:2961
    frame #28: 0x00007fd3382b6914 libQt5Widgets.so.5`QTextEditPrivate::relayoutDocument(this=0x0000000004ac2400) at qtextedit.cpp:1458:10
    frame #29: 0x00007fd3382b85e8 libQt5Widgets.so.5`QTextEdit::resizeEvent(this=<unavailable>, e=0x00007ffd18de7340) at qtextedit.cpp:1417:12
    frame #30: 0x00007fd3381382f0 libQt5Widgets.so.5`QWidget::event(this=0x0000000004adbfb0, event=0x00007ffd18de7340) at qwidget.cpp:0:9
    frame #31: 0x00007fd3381d9ba7 libQt5Widgets.so.5`QFrame::event(this=0x0000000004adbfb0, e=0x00007ffd18de7340) at qframe.cpp:550:28
    frame #32: 0x00007fd3365038be libQt5Core.so.5`QCoreApplicationPrivate::sendThroughObjectEventFilters(receiver=0x0000000006972590, event=0x00007ffd18de7340) at qcoreapplication.cpp:1142:22
    frame #33: 0x00007fd3381017e9 libQt5Widgets.so.5`QApplicationPrivate::notify_helper(this=<unavailable>, receiver=0x0000000006972590, e=0x00007ffd18de7340) at qapplication.cpp:3718:9
    frame #34: 0x00007fd338102b69 libQt5Widgets.so.5`QApplication::notify(this=<unavailable>, receiver=<unavailable>, e=<unavailable>) at qapplication.cpp:0:9
    frame #35: 0x00007fd3365035e6 libQt5Core.so.5`QCoreApplication::notifyInternal2(receiver=0x0000000006972590, event=0x00007ffd18de7340) at qcoreapplication.cpp:1031:18
    frame #36: 0x00007fd338130389 libQt5Widgets.so.5`QWidgetPrivate::sendPendingMoveAndResizeEvents(bool, bool) [inlined] QCoreApplication::sendEvent(receiver=0x0000000006972590, event=0x00007fd337a9dd50) at qcoreapplication.h:233:44
    frame #37: 0x00007fd338130379 libQt5Widgets.so.5`QWidgetPrivate::sendPendingMoveAndResizeEvents(this=0x000000000a147970, recursive=false, disableUpdates=<unavailable>) at qwidget.cpp:7928
    frame #38: 0x00007fd338136f62 libQt5Widgets.so.5`QWidgetPrivate::show_helper(this=0x000000000a147970) at qwidget.cpp:7979:5
    frame #39: 0x00007fd338137d15 libQt5Widgets.so.5`QWidget::setVisible(this=0x0000000006972590, visible=<unavailable>) at qwidget.cpp:8334:16
    frame #40: 0x00007fd3381372d3 libQt5Widgets.so.5`QWidgetPrivate::showChildren(this=<unavailable>, spontaneous=false) at qwidget.cpp:8417:25
    frame #41: 0x00007fd338136f83 libQt5Widgets.so.5`QWidgetPrivate::show_helper(this=0x0000000004ac2400) at qwidget.cpp:7985:5
    frame #42: 0x00007fd3381372da libQt5Widgets.so.5`QWidgetPrivate::showChildren(this=<unavailable>, spontaneous=false) at qwidget.cpp:8415:35
    frame #43: 0x00007fd338136f83 libQt5Widgets.so.5`QWidgetPrivate::show_helper(this=0x00000000096da690) at qwidget.cpp:7985:5
    frame #44: 0x00007fd338137d15 libQt5Widgets.so.5`QWidget::setVisible(this=0x0000000008e87e90, visible=<unavailable>) at qwidget.cpp:8334:16
    frame #45: 0x00007fd3381372d3 libQt5Widgets.so.5`QWidgetPrivate::showChildren(this=<unavailable>, spontaneous=false) at qwidget.cpp:8417:25
    frame #46: 0x00007fd338136f83 libQt5Widgets.so.5`QWidgetPrivate::show_helper(this=0x0000000007697810) at qwidget.cpp:7985:5
    frame #47: 0x00007fd338137d15 libQt5Widgets.so.5`QWidget::setVisible(this=0x0000000004de5d80, visible=<unavailable>) at qwidget.cpp:8334:16
    frame #48: 0x00007fd33cb7a1d9 libKDevPlatformUtil.so.56`(anonymous namespace)::ActiveToolTipManager::doVisibility(this=<unavailable>) at activetooltip.cpp:170:35
    frame #49: 0x00007fd33652b661 libQt5Core.so.5`QObject::event(this=0x00007fd33cd90e98, e=<unavailable>) at qobject.cpp:1252:18
    frame #50: 0x00007fd338101801 libQt5Widgets.so.5`QApplicationPrivate::notify_helper(this=<unavailable>, receiver=0x00007fd33cd90e98, e=0x0000000009d6c4a0) at qapplication.cpp:3722:31
    frame #51: 0x00007fd338102b69 libQt5Widgets.so.5`QApplication::notify(this=<unavailable>, receiver=<unavailable>, e=<unavailable>) at qapplication.cpp:0:9
    frame #52: 0x00007fd3365035e6 libQt5Core.so.5`QCoreApplication::notifyInternal2(receiver=0x00007fd33cd90e98, event=0x0000000009d6c4a0) at qcoreapplication.cpp:1031:18
    frame #53: 0x00007fd33650446f libQt5Core.so.5`QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) [inlined] QCoreApplication::sendEvent(receiver=<unavailable>, event=<unavailable>) at qcoreapplication.h:233:44
    frame #54: 0x00007fd33650445b libQt5Core.so.5`QCoreApplicationPrivate::sendPostedEvents(receiver=0x0000000000000000, event_type=0, data=0x00000000023199f0) at qcoreapplication.cpp:1706
    frame #55: 0x00007fd336553b23 libQt5Core.so.5`postEventSourceDispatch(s=0x000000000248fc90, (null)=<unavailable>, (null)=<unavailable>)(void*), void*) at qeventdispatcher_glib.cpp:276:5
    frame #56: 0x00007fd32bda198c libglib-2.0.so.0`g_main_context_dispatch at gmain.c:3170:27
    frame #57: 0x00007fd32bda17f7 libglib-2.0.so.0`g_main_context_dispatch(context=<unavailable>) at gmain.c:3835
    frame #58: 0x00007fd32bda209e libglib-2.0.so.0`g_main_context_iterate(context=0x00007fd318003030, block=<unavailable>, dispatch=<unavailable>, self=<unavailable>) at gmain.c:3908:5
    frame #59: 0x00007fd32bda2307 libglib-2.0.so.0`g_main_context_iteration(context=0x00007fd318003030, may_block=1) at gmain.c:3969:12
    frame #60: 0x00007fd3365535db libQt5Core.so.5`QEventDispatcherGlib::processEvents(this=0x00000000025416d0, flags=<unavailable>) at qeventdispatcher_glib.cpp:425:18
    frame #61: 0x00007fd3364ff472 libQt5Core.so.5`QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) [inlined] QEventLoop::processEvents(this=<unavailable>, flags=<unavailable>) at qeventloop.cpp:134:51
    frame #62: 0x00007fd3364ff455 libQt5Core.so.5`QEventLoop::exec(this=0x00007ffd18de7d90, flags=<unavailable>) at qeventloop.cpp:212
    frame #63: 0x00007fd336503cad libQt5Core.so.5`QCoreApplication::exec() at qcoreapplication.cpp:1304:32
    frame #64: 0x00000000004138de kdevelop`main(argc=<unavailable>, argv=<unavailable>) at main.cpp:1006:12
    frame #65: 0x00007fd335690f45 libc.so.6`__libc_start_main(main=(kdevelop`main at main.cpp:445), argc=2, argv=0x00007ffd18de8118, init=<unavailable>, fini=<unavailable>, rtld_fini=<unavailable>, stack_end=0x00007ffd18de8108) at libc-start.c:287
    frame #66: 0x0000000000406804 kdevelop`_start + 41



More information about the KDevelop-devel mailing list