summaryrefslogtreecommitdiffstats
path: root/doc/src/declarative/qdeclarativedebugging.qdoc
blob: da6e40737a2f2adb0caa7ba7a2ad38ffd46cdac1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
/****************************************************************************
**
** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
** All rights reserved.
** Contact: Nokia Corporation (qt-info@nokia.com)
**
** This file is part of the documentation of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:FDL$
** Commercial Usage
** Licensees holding valid Qt Commercial licenses may use this file in
** accordance with the Qt Commercial License Agreement provided with the
** Software or, alternatively, in accordance with the terms contained in a
** written agreement between you and Nokia.
**
** GNU Free Documentation License
** Alternatively, this file may be used under the terms of the GNU Free
** Documentation License version 1.3 as published by the Free Software
** Foundation and appearing in the file included in the packaging of this
** file.
**
** If you have questions regarding the use of this file, please contact
** Nokia at qt-info@nokia.com.
** $QT_END_LICENSE$
**
****************************************************************************/

/*!
\page qdeclarativedebugging.html
\title Debugging QML

\section1 Logging

\c console.log can be used to print debugging information to the console. For example:

\qml
Rectangle {
    width: 200; height: 200
    MouseArea {
        anchors.fill: parent
        onClicked: console.log("clicked")
    }
}
\endqml

\section1 Debugging Transitions

When a transition doesn't look quite right, it can be helpful to view it in slow
motion to see what is happening more clearly. This functionality is supported
in the \l {Qt Declarative UI Runtime}{qmlviewer} tool: to enable this,
click on the "Debugging" menu, then "Slow Down Animations".


\section1 Debugging module imports

The \c QML_IMPORT_TRACE environment variable can be set to enable debug output
from QML's import loading mechanisms. 

For example, for a simple QML file like this:

\qml
import Qt 4.7

Rectangle { width: 100; height: 100 }
\endqml

If you set \c {QML_IMPORT_TRACE=1} before running the \l {Qt Declarative UI Runtime}{qmlviewer}
(or your QML C++ application), you will see output similar to this:

\code
QDeclarativeImportDatabase::addImportPath "/qt-sdk/imports" 
QDeclarativeImportDatabase::addImportPath "/qt-sdk/bin/QMLViewer.app/Contents/MacOS" 
QDeclarativeImportDatabase::addToImport 0x106237370 "." -1.-1 File as ""
QDeclarativeImportDatabase::addToImport 0x106237370 "Qt" 4.7 Library as ""
QDeclarativeImportDatabase::resolveType "Rectangle" = "QDeclarativeRectangle"
\endcode


\section1 Debugging with Qt Creator

\l{http://qt.nokia.com/products/developer-tools}{Qt Creator} provides built-in
support for QML debugging. Open a QML project in Creator and enter Debug mode,
or click the "Start Debugging" option from the menu, and Creator will
show QML debugging information and options for your application, including
object inspection, property monitoring and application frame-rate analysis.

Creator can be used to debug both local and remote QML applications. To
enable remote debugging, start the \l {Qt Declarative UI Runtime}{qml} tool
on the remote device with a debugging port defined, like this:

\code
    QML_DEBUG_SERVER_PORT=3768 qml myqmlfile.qml
\endcode

In Creator, open the project settings pane and set the server and port
details for the remote device, then start debugging.

*/