[Interest] Debugger exits unexpectedly while debugging simple qt quick app

Koehne Kai Kai.Koehne at digia.com
Wed Sep 25 21:26:18 CEST 2013


Sounds like you found a bug in the server side code of the QML inspector. To check for that, Go to Options pane, Debugger, and de-select "Show QML object tree". Does the crash still occur?

In any case, it would be great if you could file a bug on bugreports.qt-project.org.

Regards

Kai

PS: Sorry for top-posting ...



From: interest-bounces+kai.koehne=digia.com at qt-project.org [interest-bounces+kai.koehne=digia.com at qt-project.org] on behalf of Rogers Nate [nate.rogers at raymondcorp.com]

Sent: 25 September 2013 19:35

To: interest at qt-project.org

Subject: [Interest] Debugger exits unexpectedly while debugging simple qt quick app







I have my project set to debug qml only and I am trying to figure out why the debugger exits unexpectedly when I click on one of my .qml files in qtcreator.  This is the order which it happens every time, first I press F5 to start debugging
 and my app is deployed to my target board successfully, then I touch the touch screen to cause the stackview to load the main menu, then I double click on the LeftHeaderButton.qml file in qtcreator and the app just stops running and the debugger shuts down. 
 I have no idea why this is happening so any help would be greatly appreciated!  Also the app only dies like this if I am debugging, if the debugger is not connected I can run all day.
 
Here are some details about my setup:
                Dev Board: TI am335x starter kit running TI SDK 6.0
                Qt Versions: Qt 5.1.1 –platform eglfs –plugin tslib and QtCreator 2.8.1
                Host: Ubuntu 12.04 LTS running in VMware on Windows 7 32bit
 
Below are my qml files and the debugger log:
 
Main.cpp
 
#include <QtGui/QGuiApplication>
#include "qtquick2applicationviewer.h"
 
// Create the main UI view
QtQuick2ApplicationViewer *view;
 
int main(int argc, char *argv[])
{
    // Create the main UI view
    QGuiApplication app(argc, argv);
 
    // Create the main UI view
    view = new QtQuick2ApplicationViewer;
 
    // Set the starting QML screen
    view->setSource(QUrl("qrc:/main.qml"));
 
    // Hide the cursor
    QPixmap nullCursor(16, 16);
    nullCursor.fill(Qt::transparent);
    app.setOverrideCursor(QCursor(nullCursor));
 
    // Display the UI
    view->showExpanded();
    return app.exec();
}
 
 
Main.qml
 
import QtQuick 2.1
import QtQuick.Controls 1.0
 
Rectangle
{
    id: main
    width: 480
    height: 272
    color: "#333132"
 
                // Define signals
                signal onGoToHome()
                signal onOpenPage(string fileName)
                signal onClosePage()
 
    Rectangle
    {
        id: header
        height: 55
        gradient: Gradient
        {
            GradientStop
            {
                position: 0
                color: "#d1d3d4"
            }
 
            GradientStop
            {
                position: 1
                color: "#f1f2f2"
            }
        }
        anchors.right: parent.right
        anchors.rightMargin: 0
        anchors.left: parent.left
        anchors.leftMargin: 0
        anchors.top: parent.top
        anchors.topMargin: 0
    }
 
    LeftHeaderButton
    {
        id: menuButton
                                //text: "Menu"
        anchors.top: parent.top
        anchors.topMargin: 0
        anchors.left: parent.left
        anchors.leftMargin: 0
        focus: true
        KeyNavigation.right: leftheaderbutton2
 
        onClicked:
        {
            main.color = "black"
        }
    }
 
    DateTime
    {
        id: dateTime
        anchors.right: parent.right
        anchors.rightMargin: 60
        anchors.top: parent.top
        anchors.topMargin: 0
    }
 
    StackView
    {
        id: screenStack
        width: 480
        height: 212
        anchors.top: redBar.bottom
        anchors.topMargin: 0
 
        initialItem: Qt.resolvedUrl("DashboardScreen.qml")
    }
 
    Image
    {
        id: redBar
        x: 0
        y: 55
        source: "images/Header_Red_Bar.png"
    }
 
    Image
    {
        id: redBarShadow
        x: 0
        y: 60
        source: "images/Header_Drop_Shadow.png"
    }
 
    // Setup the connections for any signals
    Connections
    {
        // Setup the page stack
        target: screenStack.currentItem
        onOpenPage:
        {
            // Update to the new screen
            screenStack.push(Qt.resolvedUrl(fileName))
        }
        onGoToHome:
        {
            // Unwind the screen stack
            screenStack.pop(1)
        }
        onClosePage:
        {
            // Remove the current screen from the stack
            screenStack.pop()
        }
    }
 
    LeftHeaderButton
    {
        id: leftheaderbutton2
                                //text: "Menu"
        anchors.top: parent.top
        anchors.topMargin: 0
        anchors.right: parent.right
        anchors.rightMargin: 0
        focus: true
        KeyNavigation.right: menuButton
 
        onClicked:
                                {
            main.color = "yellow"
        }
    }
}
 
 
DashboardScreen.qml
 
import QtQuick 2.1
 
Item
{
    width: 480
    height: 212
 
    // Define signals
    signal openPage(string fileName)
 
    Rectangle
    {
        id: background
        anchors.fill: parent
        color: "red"
 
        MouseArea
        {
            anchors.fill: parent
 
            onClicked:
            {
                                                                openPage("MainMenu.qml")
            }
        }
    }
}
 
 
MainMenu.qml
 
import QtQuick 2.1
 
Item
{
    width: 480
    height: 212
 
    // Define signals
    signal closePage()
 
    Rectangle
    {
        anchors.fill: parent
        color: "blue"
 
        MouseArea
        {
            anchors.fill: parent
 
            onClicked:
            {
                                                                closePage()
            }
        }
    }
}
 
LeftHeaderButton.qml
 
import QtQuick 2.1
 
FocusScope
{
    id: button
 
    // Define signals
    signal clicked
    signal focusRecieved
 
    // Expose properties to parent
                //property alias text: label.text
                //property alias fontSize: label.fontSize
                //property alias icon: labelImage.source
 
    // Define fonts
                //FontLoader { id: universLTStd57CnFont; source: "fonts/UniversLTStd57Cn.otf" }
 
    // FocusScope needs to bind to visual properties of the children
    x: background.x
    y: background.y
    width: background.width
    height: background.height
 
    Rectangle
    {
        // Setup the background properties
        id: background
        x: 0
        y: 0
        width: 118
        height: 55
        smooth: true
        focus: true
        anchors.centerIn: parent
        gradient: Gradient {
            GradientStop {
                position: 0
                color: "#ffffff"
            }
 
            GradientStop {
                position: 1
                color: "#999999"
            }
        }
 
        onFocusChanged:
        {
            // Has the button recieved focus?
            if (activeFocus)
            {
                // Yes, emit the focus recieved signal
                button.focusRecieved()
            }
        }
    }
 
    Image
    {
        property string icon: "images/Button_Icon_Menu.png"
        id: labelImage
        source: icon
        x: 28
        y: 28
        visible: true
    }
/*
    Text
    {
        // Define text variables
        property int fontSize: 18
        x: 55
        y: 31
 
        // Setup the button text properties
        id: label
        font.family: universLTStd57CnFont.name
        color: "#ffffff"
        text: "Menu"
        font.pixelSize: 18
    }
*/
    Keys.onPressed:
    {
        // Was the return key pressed?
        if (event.key === Qt.Key_Return)
        {
            // Yes, emit the clicked signal
            button.clicked()
        }
    }
 
    MouseArea
    {
        anchors.fill:parent
        onClicked:
        {
            // The button was pressed, set the focus on this button
            button.focus = true
 
            // Emit the clicked signal
            button.clicked()
        }
    }
}
 
DateTime.qml
 
import QtQuick 2.1
 
Item
{
                id: timeRectangle
    x: 0
                y: 0
    width: 160
    height: 55
 
    // Define fonts
    FontLoader { id: universLTStd57CnFont; source: "fonts/UniversLTStd57Cn.otf" }
 
                Text
                {
                                id: timeText
        y: 33
        text: Qt.formatDateTime(new Date(), "h:mm ap       MM/dd/yy")
        anchors.right: parent.right
        anchors.rightMargin: 0
                                horizontalAlignment: Text.AlignRight
        font.pixelSize: 16
        font.family: universLTStd57CnFont.name
                }
 
                Timer
                {
                                interval: 1000
                                running: true
                                repeat: true
        onTriggered: timeText.text = Qt.formatDateTime(new Date(), "h:mm ap       MM/dd/yy")
                }
}
 
 
Debugger Log
 
sStarting debugger "QmlEngine" for ABI "arm-linux-generic-elf-32bit"...
dStart parameters: 'ProjectBlue (on Remote Device)' mode: 6
dABI: arm-linux-generic-elf-32bit
dLanguages: qml
dDebugger: /root/DevApps/ti-sdk-6.0/linux-devkit/sysroots/i686-arago-linux/usr/bin/arm-linux-gnueabihf-gdb
dProject: /root/DevApps/projects/ProjectBlue (built: /root/DevApps/projects/ProjectBlue)
dQML server: 192.168.1.5:0
dRemote: 192.168.1.5:22
dSysroot: 
dDebug Source Location: 
dSymbol file: 
dDumper libraries: 
dDebugger settings: 
dQmlInspector.FromQml: false  (default: false)
dQmlInspector.ShowAppOnTop: false  (default: false)
dShowQmlObjectTree: true  (default: true)
dAlwaysAdjustModulesColumnWidths: false  (default: false)
dAlwaysAdjustThreadsColumnWidths: false  (default: false)
dAlwaysAdjustSnapshotsColumnWidths: false  (default: false)
dAlwaysAdjustRegistersColumnWidths: false  (default: false)
dBreakOnAbort: false  (default: false)
dBreakOnFatal: false  (default: false)
dBreakOnWarning: false  (default: false)
dBreakOnCatch: false  (default: false)
dBreakOnThrow: false  (default: false)
dSelectedPluginBreakpointsPattern: .*  (default: .*)
dLoadGdbInit: true  (default: true)
dIgnoreFirstChanceAccessViolation: false  (default: false)
dBreakpointCorrection: true  (default: true)
dCDB_Console: false  (default: false)
dBreakOnCrtDbgReport: false  (default: false)
dBreakEvent:   (default: )
dSourcePaths:   (default: )
dSymbolPaths:   (default: )
dAdditionalArguments:   (default: )
dUseAddressInStackView: false  (default: false)
dUseAddressInBreakpointsView: false  (default: false)
dUseToolTipsInBreakpointsView: false  (default: false)
dUseToolTipsInLocalsView: true  (default: false)  ***
dUseToolTips: false  (default: false)
dShowThreadNames: true  (default: false)  ***
dUseCodeModel: true  (default: true)
dUseDebuggingHelper: true  (default: true)
dRaiseOnInterrupt: true  (default: true)
dBreakpointsFullPath: false  (default: false)
dSwitchModeOnExit: false  (default: false)
dCloseBuffersOnExit: false  (default: false)
dVerboseLog: false  (default: false)
dLogTimeStamps: false  (default: false)
dAutoQuit: false  (default: false)
dUseMessageBoxForSignals: true  (default: true)
dFontSizeFollowsEditor: false  (default: false)
dUseAlternatingRowColours: false  (default: false)
dNoPluginBreakpoints: false  (default: false)
dAlwaysAdjustBreakpointsColumnWidths: false  (default: false)
dAdjustBreakpointLocations: true  (default: true)
dSelectedPluginBreakpoints: false  (default: false)
dAllPluginBreakpoints: true  (default: true)
dEnableReverseDebugging: false  (default: false)
dSkipKnownFrames: false  (default: false)
dListSourceFiles: false  (default: false)
dMaximalStringLength: 10000  (default: 10000)
dAlwaysAdjustLocalsColumnWidths: false  (default: false)
dAutoDerefPointers: true  (default: true)
dSortStructMembers: true  (default: true)
dShowQtNamespace: true  (default: true)
dShowStandardNamespace: true  (default: true)
dAlwaysAdjustStackColumnWidths: false  (default: false)
dMaximalStackDepth: 20  (default: 20)
dIdentifyDebugInfoPackages: false  (default: false)
dIntelFlavor: false  (default: false)
dMultiInferior: true  (default: false)  ***
dWarnOnReleaseBuilds: true  (default: true)
dTargetAsync: false  (default: false)
dUseDynamicType: true  (default: true)
dAutoEnrichParameters: true  (default: true)
dWatchdogTimeout: 20  (default: 20)
dGdbPostAttachCommands:   (default: )
dGdbCustomDumperCommands:   (default: )
dGdbStartupCommands:   (default: )
dAttemptQuickStart: false  (default: false)
dLoadGdbDumpers: true  (default: true)
dState changed from DebuggerNotReady(0) to EngineSetupRequested(1) [master]
dQUEUE: SETUP ENGINE
dCALL: SETUP ENGINE
dNOTE: REQUEST REMOTE SETUP
 
dNOTE: REMOTE SETUP DONE: GDB SERVER PORT: -1  QML PORT 10000
dNOTE: ENGINE SETUP OK
dState changed from EngineSetupRequested(1) to EngineSetupOk(3) [master]
dQUEUE: SETUP INFERIOR
dState changed from EngineSetupOk(3) to InferiorSetupRequested(4) [master]
dQUEUE: SETUP INFERIOR
QIconvCodec::convertFromUnicode: using Latin-1 for conversion, iconv_open failed
QML debugging is enabled. Only use this in a safe environment.
QIconvCodec::convertToUnicode: using Latin-1 for conversion, iconv_open failed
evdevtouch: Using device /dev/input/event1
min X: 0 max X: 0
min Y: 0 max Y: 0
min pressure: 0 max pressure: 4095
device name: ti-tsc
Protocol type A 
 EGLFS: Unable to query physical screen size, defaulting to 100 dpi.
EGLFS: To override, set QT_QPA_EGLFS_PHYSICAL_WIDTH and QT_QPA_EGLFS_PHYSICAL_HEIGHT (in millimeters).
QTsLibMouseHandler "tslib" "" 
 QML Debugger: Waiting for connection on port 10000...
dCALL: SETUP INFERIOR
dNOTE: INFERIOR SETUP OK
dState changed from InferiorSetupRequested(4) to InferiorSetupOk(6) [master]
dState changed from InferiorSetupOk(6) to EngineRunRequested(7) [master]
dQUEUE: RUN ENGINE
dCALL: RUN ENGINE
 
sQML Debugger: No application output received in time, trying to connect ...
sQML Debugger: Connecting to debug server 192.168.1.5:10000
sQML Debugger: Resolving host.
sQML Debugger: Connecting to debug server.
sQML Debugger: Connected.
dATTEMPT BREAKPOINT SYNCHRONIZATION
dBREAKPOINTS ARE SYNCHRONIZED
dQScriptDebuggerClient: sending BREAKPOINTS ()
dNOTE: ENGINE RUN AND INFERIOR RUN OK
sRunning.
dState changed from EngineRunRequested(7) to InferiorRunOk(11) [master]
sQML Debugger: Status of 'QmlDebugger' Version: -1 changed to 'unavailable'.
sQML Debugger: Status of 'QDeclarativeObserverMode' Version: -1 changed to 'unavailable'.
sQML Debugger: Status of 'DebugMessages' Version: -1 changed to 'unavailable'.
sQML Debugger: Status of 'QDeclarativeEngine' Version: -1 changed to 'unavailable'.
sQML Debugger: Status of 'V8Debugger' Version: -1 changed to 'unavailable'.
sQML Debugger: Status of 'QmlInspector' Version: -1 changed to 'unavailable'.
sQML Debugger: Status of 'DeclarativeDebugger' Version: -1 changed to 'unavailable'.
sQML Debugger: Status of 'JSDebugger' Version: -1 changed to 'unavailable'.
 
sQML Debugger: Status of 'QmlDebugger' Version: 2 changed to 'enabled'.
dInspector sending LIST_ENGINES
sQML Debugger: Status of 'V8Debugger' Version: 2 changed to 'enabled'.
dV8DebuggerClient: sending V8DEBUG connect
dV8DebuggerClient: sending V8DEBUG v8request {"seq":0,"type":"request","command":"version"}
dV8DebuggerClient: receiving V8DEBUG connect
 
sQML Debugger: Status of 'DebugMessages' Version: 2 changed to 'enabled'.
sQML Debugger: Status of 'QmlInspector' Version: 1 changed to 'enabled'.
 
dV8DebuggerClient: receiving V8DEBUG v8message
dV8DebuggerClient: receiving v8message {"seq":0,"type":"response","command":"version","success":true,"body":

{"V8Version":"3.15.2"},"refs":[],"running":true}
dV8DebuggerClient: receiving Using V8 Version: 3.15.2
dInspector receiving OBJECT_CREATED
 
qrc:/main.qml:96:5: QML Connections: Cannot assign to non-existent property "onClosePage"
qrc:/main.qml:96:5: QML Connections: Cannot assign to non-existent property "onGoToHome"
dInspector receiving OBJECT_CREATED
 
dInspector receiving LIST_ENGINES_R
dInspector sending LIST_OBJECTS
dInspector receiving LIST_OBJECTS_R
 
dInspector receiving WATCH_OBJECT_R
 
dInspector receiving OBJECT_CREATED
qrc:/main.qml:96:5: QML Connections: Cannot assign to non-existent property "onGoToHome"
qrc:/main.qml:96:5: QML Connections: Cannot assign to non-existent property "onOpenPage"
 
dInspector sending LIST_OBJECTS
dInspector receiving OBJECT_CREATED
 
dInspector sending LIST_OBJECTS
dInspector receiving LIST_OBJECTS_R
 
dInspector receiving LIST_OBJECTS_R
dInspector receiving WATCH_OBJECT_R
 
dInspector sending FETCH_OBJECTS_FOR_LOCATION /root/DevApps/projects/ProjectBlue/LeftHeaderButton.qml:3:1
sQML Debugger: Error: (1) The remote host closed the connection
sQML Debugger: Remote host closed connection.
dNOTE: INFERIOR SPONTANEOUS STOP
sStopped.
dState changed from InferiorRunOk(11) to InferiorStopOk(14) [master]
dNOTE: INFERIOR ILL
dState changed from InferiorStopOk(14) to InferiorShutdownRequested(17) [master]
dQUEUE: SHUTDOWN INFERIOR
sQML Debugger: Closing.
sQML Debugger: Disconnected.
s
dCALL: SHUTDOWN INFERIOR
dV8DebuggerClient: sending V8DEBUG {"seq":1,"type":"request","command":"disconnect"}
sQML Debugger: Disconnected.
s
sQML Debugger: Status of 'QmlDebugger' Version: 2 changed to 'not connected'.
sQML Debugger: Status of 'QDeclarativeObserverMode' Version: -1 changed to 'not connected'.
sQML Debugger: Status of 'DebugMessages' Version: 2 changed to 'not connected'.
sQML Debugger: Status of 'QDeclarativeEngine' Version: -1 changed to 'not connected'.
sQML Debugger: Status of 'V8Debugger' Version: 2 changed to 'not connected'.
sQML Debugger: Status of 'QmlInspector' Version: 1 changed to 'not connected'.
sQML Debugger: Status of 'DeclarativeDebugger' Version: -1 changed to 'not connected'.
sQML Debugger: Status of 'JSDebugger' Version: -1 changed to 'not connected'.
dINFERIOR SUCCESSFULLY SHUT DOWN
dState changed from InferiorShutdownRequested(17) to InferiorShutdownOk(19) [master]
dState changed from InferiorShutdownOk(19) to EngineShutdownRequested(20) [master]
dQUEUE: SHUTDOWN ENGINE
dCALL: SHUTDOWN ENGINE
dNOTE: ENGINE SHUTDOWN OK
dState changed from EngineShutdownRequested(20) to EngineShutdownOk(22) [master]
dState changed from EngineShutdownOk(22) to DebuggerFinished(23) [master]
dQUEUE: FINISH DEBUGGER
sh: line 1:  2351 Segmentation fault      DISPLAY=:0.0 /opt/ProjectBlue/bin/ProjectBlue -platform eglfs -plugin tslib -

qmljsdebugger=port:10000,block
Remote application finished with exit code 139.
dNOTE: INFERIOR ILL
dState changed from DebuggerFinished(23) to InferiorShutdownRequested(17) [master]
dQUEUE: SHUTDOWN INFERIOR
dQUIT DEBUGGER REQUESTED IN STATE 17
dNOTE: INFERIOR ILL
dState changed from InferiorShutdownRequested(17) to InferiorShutdownRequested(17) [master]
dQUEUE: SHUTDOWN INFERIOR
dNOTE: FINISH DEBUGGER
dHANDLE RUNCONTROL FINISHED
sDebugger finished.
dCALL: SHUTDOWN INFERIOR
dV8DebuggerClient: sending V8DEBUG {"seq":2,"type":"request","command":"disconnect"}
dINFERIOR SUCCESSFULLY SHUT DOWN
dState changed from InferiorShutdownRequested(17) to InferiorShutdownOk(19) [master]
dState changed from InferiorShutdownOk(19) to EngineShutdownRequested(20) [master]
dQUEUE: SHUTDOWN ENGINE
dCALL: SHUTDOWN INFERIOR
dV8DebuggerClient: sending V8DEBUG {"seq":3,"type":"request","command":"disconnect"}
dINFERIOR SUCCESSFULLY SHUT DOWN
dState changed from EngineShutdownRequested(20) to InferiorShutdownOk(19) [master]
dState changed from InferiorShutdownOk(19) to EngineShutdownRequested(20) [master]
dQUEUE: SHUTDOWN ENGINE
dCALL: SHUTDOWN ENGINE
dNOTE: ENGINE SHUTDOWN OK
dState changed from EngineShutdownRequested(20) to EngineShutdownOk(22) [master]
dState changed from EngineShutdownOk(22) to DebuggerFinished(23) [master]
dQUEUE: FINISH DEBUGGER
dCALL: SHUTDOWN ENGINE
dNOTE: ENGINE SHUTDOWN OK
dState changed from DebuggerFinished(23) to EngineShutdownOk(22) [master]
dState changed from EngineShutdownOk(22) to DebuggerFinished(23) [master]
dQUEUE: FINISH DEBUGGER
dNOTE: FINISH DEBUGGER
dNOTE: FINISH DEBUGGER
 
 
Thanks in advance!
 
Nate R.

Confidentiality Notice: The preceding e-mail message (including any attachments) contains information that may be confidential, protected by applicable legal privileges, or constitute non-public information. It is intended to be conveyed only to the designated
 recipient(s). If you are not an intended recipient of this message, please notify the sender by replying to this message and then delete it from your system. Use, dissemination, distribution or reproduction of this message by unintended recipients is not authorized
 and may be unlawful. 







More information about the Interest mailing list