[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