Qt Forum

    • Login
    • Search
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Search
    • Unsolved

    Update: Forum Guidelines & Code of Conduct


    Qt World Summit: Early-Bird Tickets

    FileDialog crashes sometimes in Debug, seems to behave ok in Release

    QML and Qt Quick
    3
    4
    3084
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • J
      Jagholin last edited by

      So this is a very ghostly bug... or else

      Code is very simple:
      @#include <QQmlApplicationEngine>
      #include <QGuiApplication>

      int main(int argc, char **argv)
      {
      QGuiApplication app(argc, argv);
      QQmlApplicationEngine engine;
      engine.load("qml/main.qml");
      return app.exec();
      }@

      main.qml:
      @import QtQuick 2.1
      import QtQuick.Controls 1.0
      import QtQuick.Dialogs 1.0

      ApplicationWindow {
      id: app
      visible: true

      width: 800
      height: 600

      menuBar: MenuBar {
      Menu {
      title: "File"
      MenuItem {
      text: "Open"
      shortcut: "Ctrl+O"
      onTriggered: app.openDoc()
      }
      }
      }

      FileDialog {
      id: fileOpener
      title: "Select a file to be opened"
      nameFilters: "*.py"
      selectExisting: true
      selectFolder: false
      selectMultiple: false
      }

      function openDoc() {
      fileOpener.open()
      }
      }@

      Crashes sometimes(not always and very dependent on phase of moon) when the user closes the file dialog while in debug mode. The probability of crash is increased, if the program is running under debugger. After the crash, there is NO CALL STACK VISIBLE under VS debugger(the RIP register was == 0, and it just had one entry with addr==0), however i tried to restore where the problem was by reading what was in [rsp]. It was a function
      @template <class BaseClass>
      void QWindowsDialogHelperBase<BaseClass>::hide()
      {
      000007FEDC8EF2C0 mov qword ptr [rsp+8],rcx
      000007FEDC8EF2C5 sub rsp,28h
      if (m_nativeDialog)
      000007FEDC8EF2C9 mov rax,qword ptr [this]
      000007FEDC8EF2CE cmp qword ptr [rax+20h],0
      000007FEDC8EF2D3 je QWindowsDialogHelperBase<QPlatformFileDialogHelper>::hide+2Dh (07FEDC8EF2EDh)
      m_nativeDialog->close();
      000007FEDC8EF2D5 mov rax,qword ptr [this]
      000007FEDC8EF2DA mov rax,qword ptr [rax+20h]
      000007FEDC8EF2DE mov rcx,qword ptr [this]
      000007FEDC8EF2E3 mov rcx,qword ptr [rcx+20h]
      000007FEDC8EF2E7 mov rax,qword ptr [rax]
      000007FEDC8EF2EA call qword ptr [rax+68h]
      m_ownerWindow = 0;
      000007FEDC8EF2ED mov rax,qword ptr [this] // <<< [RSP] points here
      m_ownerWindow = 0;
      000007FEDC8EF2F2 mov qword ptr [rax+28h],0
      }@

      Here the rest of my environment specs that may be useful:

      • VS 2012 Ultimate (Update 3)
      • Qt 5.1 downloaded from qt-project, for Win 64bit, VS12, OpenGL
      • build with CMake 2.8.11(i couldnt reproduce it just yet with QtCreator)
        CMakeLists:
        @cmake_minimum_required(VERSION 2.8.11)
        set (CMAKE_PREFIX_PATH "C:\Program Files (x86)\Windows Kits\8.0\Lib\win8\um\x64")
        project(delicious-pie)

      set(CMAKE_AUTOMOC ON)
      set(CMAKE_INCLUDE_CURRENT_DIR ON)

      find_package(Qt5Widgets REQUIRED)

      add_subdirectory("src")@

      @
      set(target delicious)

      set (Sources
      main.cpp
      )

      add_executable(${target} ${Sources})

      qt5_use_modules(${target} Qml Quick)@


      I would like to see if someone else could reproduce this behaviour... under different qt builds and settings perhaps, because right now i can't debug my QtQuick project and i really need to?

      1 Reply Last reply Reply Quote 0
      • G
        GdelP last edited by

        Similar behaviour here: on closing FileDialog it crashes. It is indifferent if the user selects a file or cancels. It crashes on Debug and Release randomly, more or less half of the time.
        Sometimes call stack appears and goes deep inside qwindows plugin.

        My configuration:
        Qt 5.1 with OpenGL for Visual Studio 2012 (downlaoded), cmake 2.8.11

        1 Reply Last reply Reply Quote 0
        • K
          koahnig last edited by

          It is interesting to see that there are recently problems with the static methods of QFileDialog reported.

          This one has windows as the commonality "to my problem posted":http://qt-project.org/forums/viewthread/21993/ end of last year.
          With Windows 7 64 bit, msvc 2005 and Qt 4.7.2 this was. Changing to MinGW and Qt4.8.0 "solved" the problem.

          Wondering if there is an issue in the windows API?

          Yesterday, there was "another recent report":http://qt-project.org/forums/viewthread/30896/ but on linux. This is certainly less likely related since the OS is different in addition to other things. So, just adding for completion.

          Vote the answer(s) that helped you to solve your issue(s)

          1 Reply Last reply Reply Quote 0
          • K
            koahnig last edited by

            There is a "bug report":https://bugreports.qt-project.org/browse/QTBUG-32821 referenced. The bug report is on windows with Qt 5.1.

            Vote the answer(s) that helped you to solve your issue(s)

            1 Reply Last reply Reply Quote 0
            • First post
              Last post