Merge branch '2.2' of git@scm.dev.nokia.troll.no:creator/mainline into 2.2

This commit is contained in:
Thomas Hartmann
2011-04-04 13:25:27 +02:00
16 changed files with 818 additions and 468 deletions

213
dist/changes-2.2.0 vendored
View File

@@ -1,145 +1,157 @@
The QtCreator 2.2 release contains bug fixes and new features. Qt Creator version 2.2 contains bug fixes and new features.
Below is a list of relevant changes. You can find a complete list of changes The most important changes are listed in this document. For a complete
within the logs of Qt Creator sources. Simply check it out from the public git list of changes, see the Git log for the Qt Creator sources that
repository. For example: you can check out from the public Git repository. For example:
git clone git://gitorious.org/qt-creator/qt-creator.git git clone git://gitorious.org/qt-creator/qt-creator.git
git log --cherry-pick --pretty=oneline origin/2.1...origin/2.2 git log --cherry-pick --pretty=oneline origin/2.1...origin/2.2
General General
* Added support for running user defined external tools (Tools->External) * Add support for running user defined external tools (Tools > External)
* Moved toolchain definitions out of Qt versions. * Move tool chain definitions out of Qt versions:
* You can now define toolchains in Tools->Options->ToolChains * You can now define tool chains in Tools > Options > Tool Chains
* Creator now supports more than one instance of each kind of toolchain * Qt Creator now supports more than one instance of a tool chain
* Support for MIME type customization through editing of patterns and * Add support for customizing MIME types by editing patterns and
magic matchers. magic headers
* Integrate the memcheck tool from Valgrind for Linux and Mac OS X
* Create the infrastructure to set up "soft dependencies" between plugins
* Add the qtpromaker tool that has the same functionality as
"qmake -project", but is much faster. It provides a way to easily set up
dummy .pro files that you need to quickly inspect and navigate "alien"
codebases with Qt Creator
* Document Qt Creator coding style
Editing Editing
* Add new Inkpot color scheme * Add an Inkpot color scheme
* Moved 'Open in External Editor' to Tools->External->Text
* Add UTF-8 BOM support * Add UTF-8 BOM support
* GLSL Support with: * Move the Open in External Editor item to Tools > External > Text
- syntax checking * Add the Expand/Collapse All context menu item to the Outline pane
- highlighting * Add support for user-defined macros (contributed by Nicolas Arnaud-Cormos)
- code completion * Add a snippet editor with syntax highlighting, indentation, and basic
* Add 'expand/collapse all' context menu entry to Outline pane auto-completion for C++ and QML
* Support for user defined macros was contributed by Nicolas Arnaud-Cormos * Add GLSL support with:
* Snippet editor with syntax highlighting, indentation, and basic auto - Syntax checking
completion for C++ and QML. - Highlighting
- Code completion
* Binary editor:
- Visualize data differences after updates
- Fix selection if cursor is left of anchor
- Allow copying also if selection is "backwards"
- Do not draw blinking cursor when there is a selection
FakeVim:
- Implement Ctrl-N/Ctrl-P
- Implement 's' in visual block mode
- Fix Alt-Gr handling on Windows
- Handle more Ctrl-W + <x> commands
Project Support Managing Projects
* QMake project support should be more robust against syntax errors * Improve the robustness of qmake project support against syntax errors
* Treatment of command line arguments of processes started from build * Change the handling of command line arguments of processes that are
and run configurations underwent heavy modifications: started from build and run configurations:
- argument lists use native shell syntax; this affects quoting and - Argument lists use native shell syntax; this affects quoting and
environment variable expansion most environment variable expansion most
- the SOURCEDIR and BUILDDIR environment variables were replaced - The SOURCEDIR and BUILDDIR environment variables were replaced
with %{sourceDir} and %{buildDir} macros with %{sourceDir} and %{buildDir} variables
- this affects working directories and executable paths as well - This affects working directories and executable paths as well
* CMake: Add Ui completion, changes in .ui files are picked up without * Support syntax highlighting and completion for qmake project files
a rebuild. * CMake: Add UI completion, changes in .ui files are picked up without
* Syntax highlighting and completion for QMake project files a rebuild
* Text editor behavior settings now avaiable on a per-project basis. * Specify text editor behavior settings per project
* New project and file wizards:
- Support new keywords %MONTH% and %DAY% for C++ template file
- Add wizards for creating OpenGL fragment and vertex shaders
- Add a wizard for creating HTML5 based applications
- Add a wizard for creating JavaScript files, QTCREATORBUG-3070
Debugging Debugging
* Rewrote debugging engine using the Microsoft Console Debugger (CDB) * Rewrite debugging engine using the Microsoft Console Debugger (CDB)
for debugging executables built with Microsoft Visual Studio, for debugging executables built with Microsoft Visual Studio,
resulting in significant speed-up and better display of data resulting in significant speed-up and better display of data
types, supporting both 32bit and 64bit versions of the types, supporting both 32-bit and 64-bit versions of the
Debugging Tools for Windows Debugging Tools for Windows
* Made it possible to pin debugger tooltips. * Make it possible to pin debugger tooltips
* Reworked global architecture to allow multiple debugging sessions (for * Rework global architecture to allow multiple debugging sessions (for
different projects, combined Qml/C++ debugging, project 'snapshots', ...) different projects, combined QML/C++ debugging, project snapshots,
* Reworked breakpoint handling: new special breakpoint types for "break and so on)
on throw", "break on main", data breakpoints * Rework breakpoint handling: add special breakpoint types for break
* Introduce combined c++/qml debugging (combined stack, cross-step) (gdb only) on throw and break on main, as well as data breakpoints
* Introduce combined QML/C++ debugging (combined stack, cross-step) (GDB only)
* Rework per-type and per-item selection of display formats * Rework per-type and per-item selection of display formats
* New dumpers for QTextCursor, QTextDocument, __m128, QScriptValue * Add dumpers for QTextCursor, QTextDocument, __m128, QScriptValue
QBasicAtomicPointer, bit fields, boost::shared_ptr (gdb only) QBasicAtomicPointer, bit fields, boost::shared_ptr (GDB only)
* Improve dumpers for QRegion, QVariant (custom types), QSharedPointer, * Improve dumpers for QRegion, QVariant (custom types), QSharedPointer,
QMultiMap (QTCREATORBUG-3122), QObject, QWeakPointer QMultiMap (QTCREATORBUG-3122), QObject, QWeakPointer
* Make alphabetic structure member sorting optional * Make alphabetic structure member sorting optional
* Make dumpers robust in case of missing debug information * Make dumpers robust in case of missing debug information
* Improve python dumper profiling support * Improve Python dumper profiling support
* Improve stepping performance * Improve stepping performance
* Enable breakpoint setting from a disassembler view, QTCREATORBUG-3667 * Enable breakpoint setting from a disassembler view, QTCREATORBUG-3667
* Fix display of shadowed variables. * Fix display of shadowed variables
* Fix display of data containing quote characters, QTCREATORBUG-3084 * Fix display of data containing quote characters, QTCREATORBUG-3084
* Fix display of C style 'typedef struct X { ... } X; * Fix display of C-style typedef struct X { ... } X;
* Fix stack/break view updates after manual module loading, QTCREATORBUG-3427 * Fix stack/break view updates after manual module loading, QTCREATORBUG-3427
* Fix 'Jump To/Run to' when in instruction-wise mode * Fix Jump To/Run To when in instruction-wise mode
* Several fixed to the "watcher" handling * Fix the watcher handling
* Allow re-running debugger engines, QTCREATORBUG-3073 * Allow re-running debugger engines, QTCREATORBUG-3073
* Robust process control after -exec-interrupt errors, QTCREATORBUG-2850 * Robust process control after -exec-interrupt errors, QTCREATORBUG-2850
* Robust detection of Qt-in-namespace builds * Robust detection of Qt-in-namespace builds
* Handle "live updates" in the memory view * Handle "live updates" in the memory view
* Make memory view writable (gdb only) * Make memory view writable (GDB only)
* Improve starting debugger session directly from the command line * Improve starting debugger session directly from the command line
* Improve debugging helpers dialog * Improve Debugging Helpers dialog
BinEditor:
* Visualize data differences after updates
* Fix selection if cursor is left of anchor
* Allow copying also if selection is "backwards"
* Do not draw blinking cursor when there is a selection
Help Debugging QML/JS
* Compile qmljsdebugger code as static library, and link it according to the
setting in the qmake step (replaces QMLJSDEBUGGER_PATH / QMLJSDEBUGGER define)
* Qt Quick Application: Allow debugging also in release builds, improve error
diagnostics
* GUI cosmetics in JS debugger: Show stack frame level, only valid
line numbers in stack view, do not show function code, show dummy
child entry for empty arrays
* Added QML tooltips for property inspection at debug time
* Extend QML Observer for inspection and tweaking of item properties
* Add navigation of the object tree in the QML Observer through a crumble path
* Add the Show Application on Top option
* Move the toolbar from the Observer tab to the main toolbar
* Support setting of breakpoints in .qml files embedded as qrc resources
* Improve linking of QML errors in Application Output pane
C++ Support C++ Support
* Add QuickFix for implementing setters/getters for a Q_PROPERTY * Add a refactoring action for implementing setters and getters for
* Add documentation about QuickFixes a Q_PROPERTY
* Add documentation for refactoring actions
* Fix switch statement indentation for GNU and Whitesmiths * Fix switch statement indentation for GNU and Whitesmiths
style, QTCREATORBUG-2994 style, QTCREATORBUG-2994
* Fix indentation of labels * Fix indentation of labels
* Highlighting for virtual functions * Support highlighting for virtual functions
* Navigate to correct overloaded function/method * Navigate to correct overloaded function or method
QML/JS Support QML/JS Support
* Add wizard for creating JavaScript files, QTCREATORBUG-3070 * Add local-file completion for URL properties, QTCREATORBUG-2619
* Add local-file completion for url properties, QTCREATORBUG-2619 * Add warning about invalid files in URL properties
* Add warning about invalid files in url properties
* Add file name completion in imports, QTCREATORBUG-3067 * Add file name completion in imports, QTCREATORBUG-3067
* Add a locator filter for JS functions, QTCREATORBUG-2607 * Add a locator filter for JS functions, QTCREATORBUG-2607
* Add JSlint-style warnings about common JS pitfalls, QTCREATORBUG-3071 * Add JSlint-style warnings about common JS pitfalls, QTCREATORBUG-3071
* Add completion for attached properties like Component.onCompleted * Add completion for attached properties like Component.onCompleted
* Allow QML modules to ship predumped type description files. * Allow QML modules to ship predumped type description files
* Reenable instantiating component scope detection, QTCREATORBUG-2835 * Reenable instantiating component scope detection, QTCREATORBUG-2835
* Improve error reporting of failed plugin dumps * Improve error reporting of failed plugin dumps
* Complete a trailing '{' for 'A on b' object bindings, QTCREATORBUG-2642 * Complete a trailing '{' for 'A on b' object bindings, QTCREATORBUG-2642
* Highlight capitalized types, QTCREATORBUG-2658 * Highlight capitalized types, QTCREATORBUG-2658
* Re-dump a plugin if the shared library/dll changes, QTCREATORBUG-3047 * Re-dump a plugin if the shared library/DLL changes, QTCREATORBUG-3047
* Build qmldump in debug and release version on Windows, QTCREATORBUG-3549 * Build qmldump in debug and release version on Windows, QTCREATORBUG-3549
* Change qmldump to output QML instead of XML * Change qmldump to output QML instead of XML
* Fix automatic '.' import to also pick up QML modules, QTCREATORBUG-3768 * Fix automatic '.' import to also pick up QML modules, QTCREATORBUG-3768
* Fix code model update when files are renamed, QTCREATORBUG-2986 * Fix code model update when files are renamed, QTCREATORBUG-2986
* Fix incorrect completion when brace is on separate line, QTCREATORBUG-2658 * Fix incorrect completion when brace is on a separate line, QTCREATORBUG-2658
* Fix quote autoinsertion in string literals, QTCREATORBUG-2155, QTCREATORBUG-3244 * Fix quote autoinsertion in string literals, QTCREATORBUG-2155, QTCREATORBUG-3244
* Fix '{' not being an electric character, QTCREATORBUG-3405 * Fix '{' not being an electric character, QTCREATORBUG-3405
* Fix indentation of 'foo: Namesp.Type {', QTCREATORBUG-3371 * Fix indentation of 'foo: Namesp.Type {', QTCREATORBUG-3371
* .qmlproject format: Allow specifying the 'mainFile' qml file, bump version to 1.1 * .qmlproject format: Allow specifying the 'mainFile' qml file, bump version to 1.1
* Qt Quick UI project: allow user to change run environment * Qt Quick UI project: allow user to change run environment
QML/JS Debugging:
* Compile qmljsdebugger code as static library, and link it based on checkbox in qmake step
(replaces QMLJSDEBUGGER_PATH / QMLJSDEBUGGER define)
* Qt Quick Application: Allow debugging also in release builds, improve error diagnostics
* Gui cosmetics in JS debugger: Show stack frame level, only valid
line numbers in stack view, do not show function code, show dummy
child entry for empty arrays
* Added qml tooltips for property inspection at debug time
* Extended QML Observer for inspection and tweaking of item's properties
* Added navigation of the object tree in the QML Observer through a crumble path
* Add 'show app on top' option
* Move toolbar from Observer tab to the main toolbar space
* Support setting of breakpoints in .qml files embedded as qrc resources
* Improve 'linkification' of QML errors in Application Output pane
FakeVim: Help
* Implement Ctrl-N/Ctrl-P
* Implement 's' in visual block mode
* Fix Alt-Gr handling on Windows
* Handle more Ctrl-W + <x> commands
Platform Specific Platform Specific
@@ -150,34 +162,23 @@ Linux (GNOME and KDE)
Windows Windows
Symbian Target Symbian Target
* Added support for the new on-device debugging agent (CODA) * Add support for the new on-device debugging agent (CODA)
Maemo Target Maemo Target
* Added Meego support. * Add MeeGo support
* Added a device configuration wizard. * Add a wizard for configuring connections to Maemo and MeeGo devices
* Added a publishing wizard for Fremantle/extras-devel. * Add a wizard for publishing applications to Fremantle/extras-devel
* On-demand creation of Desktop files. * Create desktop files on demand
* For Fremantle, it's possible to disable packaging again. * Allow disabling packaging for Fremantle
Designer Qt Designer
Version control plugins Version control plugins
* Bazaar support was contributed by Hugues Delorme * Support Bazaar (contributed by Hugues Delorme)
Wizards
* Support new keywords %MONTH% and %DAY% for C++ template file
Misc
* MemCheck (from Valgrind) integration (Linux, Mac)
* Create infrastructure to setup "soft dependencies" between plugins
* Add a little tool 'qtpromaker' doing the job of 'qmake -project', but
much faster to make Qt Creator usable to quickly inspect and navigate
"alien" codebases a way to easily set up dummy .pro files is needed
* Start documenting Qt Creator's coding style guidelines
Additional credits go to: Additional credits go to:
* The Inkpot color scheme was based on the Vim color scheme by * The Inkpot color scheme was based on the Vim color scheme by
Ciaran McCreesh, adapted for Qt Creator by Jan Kundrát and Ciaran McCreesh, adapted for Qt Creator by Jan Kundrát and
subsequently updated by Campbell Barton subsequently updated by Campbell Barton
* Hugues Delorme for the bazaar plugin which he continues to improve * Hugues Delorme for the Bazaar plugin which he continues to improve
* Nicolas Arnaud-Cormos for the Macro plugin * Nicolas Arnaud-Cormos for the Macro plugin

View File

@@ -13,7 +13,7 @@ include(macros.qdocconf)
include(qt-cpp-ignore.qdocconf) include(qt-cpp-ignore.qdocconf)
include(qt-defines.qdocconf) include(qt-defines.qdocconf)
sources.fileextensions = "qtcreator.qdoc maemodev.qdoc symbiandev.qdoc addressbook-sdk.qdoc" sources.fileextensions = "qtcreator.qdoc maemodev.qdoc symbiandev.qdoc addressbook-sdk.qdoc qtcreator-faq.qdoc"
qhp.projects = QtCreator qhp.projects = QtCreator

276
doc/qtcreator-faq.qdoc Normal file
View File

@@ -0,0 +1,276 @@
/****************************************************************************
**
** This file is part of Qt Creator
**
** Copyright (c) 2011 Nokia Corporation and/or its subsidiary(-ies).
**
** Contact: Nokia Corporation (qt-info@nokia.com)
**
** No Commercial Usage
**
** This file contains pre-release code and may not be distributed.
** You may use this file in accordance with the terms and conditions
** contained in the Technology Preview License Agreement accompanying
** this package.
**
** 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.
**
****************************************************************************/
/*!
\contentspage index.html
\previouspage creator-os-supported-platforms.html
\page creator-faq.html
\nextpage creator-getting-started.html
\title FAQ
This section contains answers to some frequently asked questions about Qt
Creator. You might also find answers to your questions in the
\l{Known Issues} and \l{Tips and Tricks} sections, or the Troubleshooting
sections for a special area, such as
\l{Troubleshooting Debugger}{debugging}.
\section1 General Questions
\bold {How do I reset all Qt Creator settings?}
Qt Creator creates two files and a directory:
\list
\o QtCreator.db
\o QtCreator.ini
\o qtcreator
\endlist
The location depends on the platform. On Linux, Unix, and Mac OS, the files
are located in \c{~/.config/Nokia}.
On Windows XP, the files are located in
\c{<drive>:\Documents and Settings\<username>\Application Data\Nokia}, and
on Windows Vista and Windows 7 in
\c {<drive>:\Users\<username>\AppData\Roaming\Nokia}.
For all versions, try the path \c{APPDATA\Nokia}.
\bold {Qt Creator comes with MinGW, should I use this version with Qt?}
Use the version that was built against the Qt version.
\bold {Qt Creator does not find a helper application, such as Git or a
compiler. What should I do?}
Make sure that the application is in your system PATH when starting Qt
Creator. Also select \gui {Tools > Options} to check the settings specified
for the application. Many plugins specify either the path to the tool they
need or the environment they run in.
This is especially relevant for the Mac OS where \c {/usr/local/bin} might
not be in the path when Qt Creator is started.
\bold {How do I change the interface language for Qt Creator?}
Qt Creator has been localized into several languages. If the system
language is one of the supported languages, it is automatically selected.
To change the language, select \gui {Tools > Options > Environment} and
select a language in the \gui Language field. The change takes effect after
you restart Qt Creator.
\bold {Has a reported issue been addressed?}
You can look up any issue in the
\l{http://bugreports.qt.nokia.com/}{Qt bug tracker}.
\section1 Qt Designer Integration Questions
\bold {Why are custom widgets not loaded in Design mode even though it
works in standalone Qt Designer?}
Qt Designer fetches plugins from standard locations and loads the plugins
that match its build key. The locations are different for standalone and
integrated Qt Designer.
For more information, see \l{Adding Qt Designer Plugins}.
\section1 Help Questions
\bold {The Qt API Reference Documentation is missing and context help does
not find topics. What can I do?}
Qt Creator comes fully integrated with Qt documentation and examples using
the Qt Help plugin. The integrated Qt Reference Documentation is available
for Qt 4.4 and later. Qt Creator, \QSDK, and other Qt deliverables contain
documentation as .qch files. All the documentation is accessible in the
\gui Help mode.
To view the documentation that is available and to add documentation,
select \gui {Tools > Options... > Help > Documentation}. For more
information, see \l{Adding External Documentation}.
\section1 Debugger Questions
For information on troubleshooting debugger, see
\l{Troubleshooting Debugger}.
\bold {If I have a choice of GDB versions, which should I use?}
On Linux and Windows, use the Python-enabled GDB versions that are
installed when you install Qt Creator and Qt SDK. On Mac OS X, use the GDB
provided with Xcode. For a custom target, you can build your own
Python-enabled GDB. Follow the instructions in
\l{http://developer.qt.nokia.com/wiki/QtCreatorBuildGdb}{Building GDB}.
You must use at least Python version 2.5, but we recommend that you use
version 2.6.
For more information on setting up debugger, see \l{Setting Up Debugger}.
\section1 Code Editor Questions
\bold {How can I get code-completion to work on the standard headers and
phonon?}
Install a build from March 31, 2009, or later.
\section1 Compiler Questions
\bold {How can I make use of my multi-core CPU with Qt Creator?}
On Linux and Mac OS X, go to \gui Project mode, select your configuration
in the \gui {Build Settings}, locate the \gui {Build Steps}, and add the
following value, where \c{<num>} is the amount of cores in your CPU:
\c{-j <num>}
On Windows, nmake does not support the \c{-j} parameter. Instead, we
provide a drop-in replacement called jom. You can download a precompiled
version of jom from \l{ftp://ftp.qt.nokia.com/jom/}{Qt FTP server}.
Put jom.exe in a location in the %PATH%. Go to the \gui {Build Settings}
and set jom.exe as the make command.
\note: Unlike GNU make, jom automatically detects your cores and spawns as
many parallel processes as your CPU has cores. You can override this
behavior by using the \c{-j} parameter as described above.
\section1 Qt SDK Questions
\bold {I cannot use QSslSocket with the SDK. What should I do?}
The Qt build in the SDK is built with QT_NO_OPENSSL defined. Rebuilding it
is possible. For more information, see
\l{http://www.qtcentre.org/forum/f-qt-programming-2/t-qssl-19222-post94842.html}.
\bold {Which development packages from the distribution are needed on
Ubuntu or Debian?}
\code
@
sudo apt-get install libglib2.0-dev libSM-dev libxrender-dev libfontconfig1-dev libxext-dev
@
\endcode
If you use QtOpenGL, you also need:
\code
@
sudo apt-get install libgl-dev libglu-dev
@
\endcode
\section1 Platform Releated Questions
\bold {Can I develop Qt for Symbian applications with Qt Creator?}
Qt Creator comes with support for developing Qt applications that target
the Symbian platform. For more information, see
\l{Creating a Mobile Application with Qt SDK}.
\section1 Questions about New Features
\bold {Will a requested feature be implemented?}
If it is a scheduled feature, you can see this in the task tracker. If a
feature already has been implemented, it is mentioned in the
\l{http://qt.gitorious.org/qt-creator/qt-creator/trees/master/dist}{changes file}
for the upcoming release.
\bold {Why does Qt Creator not use tabs for editors?}
This question comes up from time to time, so we have considered it
carefully. Here are our main reasons for not using tabs:
\list
\o Tabs do not scale. They work fine if you have 5 to 6 editors open,
they become cumbersome with 10, and if you need more horizontal
space than the tab bar, the interface does not work at all.
\o Tabs do not adapt to your working set.
\o The common solution is to give the user the ability to reorder
tabs. Now user has to manage tabs instead of writing code.
\o Tabs force you to limit the amount of open editors, because
otherwise you get confused.
\endlist
Consider the following use case: \e {Developers want to switch editors.}
In fact, developers do not want to switch editors, but might have to do so
to accomplish their tasks. We need to figure out what the tasks are to
provide developers with better ways to navigate while performing the tasks.
One common factor in many use cases is switching editors while working on a
set of open files. While working on files A and B, users sometimes need to
look at file C. They can press \key Ctrl+Tab to move between the files and
have the files open in the correct editor according to file type. The list
is sorted by last used.
Typically, users also work on multiple classes or functions that are
related, even though they are defined or declared in different files.
Qt Creator provides two shortcuts for that: \key F2 to follow the symbol
and \key Ctrl+Shift+U to find usages.
In addition, developers can:
\list
\o Press \key F4 to switch between header and source.
\o Press \key Alt+Left to move backwards in the navigation history.
\o Use the locator (Ctrl+K) to simply tell Qt Creator where to go.
\endlist
The locator can be used to open files, but opening files is also just a
step on the way to accomplish a task. For example, consider the following
use case: \e {Fix AMethod in SomeClass which comes from
someclass.cpp/someclass.h}.
With a tabbed user interface, developers would search for someclass.cpp in
the tab bar, and then search for \c {::AMethod}, only to find out that the
method is not located in that file. They would then search for someclass.h
in the tab bar, find our that the function is inline, fix the problem, and
forget where they came from.
With Qt Creator, developers can type \c {Ctrl+K m AMet} to find the method.
Typically, they only need to type 3 to 4 characters of the method name.
They can then fix the problem and press \key Alt+Back to go back to where
they were.
Other locator filters include \c c for classes, \c : for all symbols, and
(thanks to a community contribution) \c . for symbols in the current file.
*/

View File

@@ -153,8 +153,9 @@
\o \l{Showing Task List Files in the Build Issues Pane} \o \l{Showing Task List Files in the Build Issues Pane}
\o \l{Using Command Line Options} \o \l{Using Command Line Options}
\o \l{Getting Help} \o \l{Getting Help}
\o \l{Tips and Tricks}
\o \l{Keyboard Shortcuts} \o \l{Keyboard Shortcuts}
\o \l{FAQ}
\o \l{Tips and Tricks}
\o \l{Known Issues} \o \l{Known Issues}
\o \l{Glossary} \o \l{Glossary}
\o \l{Acknowledgements} \o \l{Acknowledgements}
@@ -370,7 +371,7 @@
\list \list
\o GNU Symbolic Debugger (gdb) \o GNU Symbolic Debugger (GDB)
\o Microsoft Console Debugger (CDB) \o Microsoft Console Debugger (CDB)
@@ -406,7 +407,7 @@
plugin understands the internal layout of several Qt classes, for plugin understands the internal layout of several Qt classes, for
example, QString, the Qt containers, and most importantly QObject example, QString, the Qt containers, and most importantly QObject
(and classes derived from it), as well as most containers of the C++ (and classes derived from it), as well as most containers of the C++
Standard Library and some gcc and Symbian extensions. This Standard Library and some GCC and Symbian extensions. This
deeper understanding is used to present objects of such classes in deeper understanding is used to present objects of such classes in
a useful way. a useful way.
@@ -1719,7 +1720,7 @@
and remove snippets in the snippet editor. To open the editor, select and remove snippets in the snippet editor. To open the editor, select
\gui {Tools > Options... > Text Editor > Snippets}. \gui {Tools > Options... > Text Editor > Snippets}.
\image qtcreator-edit-code-snippets "Snippet options" \image qtcreator-edit-code-snippets.png "Snippet options"
Qt Creator provides you with built-in snippets in the following categories: Qt Creator provides you with built-in snippets in the following categories:
@@ -4591,9 +4592,9 @@
By default, Qt Creator runs the remote gdbserver daemon on the device for By default, Qt Creator runs the remote gdbserver daemon on the device for
debugging. However, if the sysroot does not match that of the device, you debugging. However, if the sysroot does not match that of the device, you
can run remote gdb, instead. Select the \gui {Run remote gdb} option in can run remote GDB, instead. Select the \gui {Use remote GDB} option in
\gui {Debugging details}. Select the \gui {Set debugger} link to specify \gui {Debugging details}. Select the \gui {Set debugger} link to specify
settings for gdb. settings for GDB.
When you run the application on the \gui{Maemo} target, Qt Creator generates When you run the application on the \gui{Maemo} target, Qt Creator generates
a Debian installation package in the build directory by default. You can deliver a Debian installation package in the build directory by default. You can deliver
@@ -7042,7 +7043,7 @@
Qt Creator provides a debugger plugin that acts Qt Creator provides a debugger plugin that acts
as an interface between the Qt Creator core and external native debuggers as an interface between the Qt Creator core and external native debuggers
such as the GNU Symbolic Debugger (gdb), the Microsoft Console Debugger (CDB), such as the GNU Symbolic Debugger (GDB), the Microsoft Console Debugger (CDB),
and a QML/JavaScript debugger. and a QML/JavaScript debugger.
The following sections describe debugging with Qt Creator: The following sections describe debugging with Qt Creator:
@@ -7203,7 +7204,7 @@
Typically, the interaction between Qt Creator and the native debugger is set Typically, the interaction between Qt Creator and the native debugger is set
up automatically and you do not need to do anything. However, you might have an up automatically and you do not need to do anything. However, you might have an
unsupported gdb version installed, your Linux environment might not have gdb unsupported GDB version installed, your Linux environment might not have GDB
installed at all, or you might want to use the debugging tools for Windows. installed at all, or you might want to use the debugging tools for Windows.
\note To use the debugging tools for Windows, you must install them and add the \note To use the debugging tools for Windows, you must install them and add the
@@ -7216,7 +7217,7 @@
\section1 Supported Native Debugger Versions \section1 Supported Native Debugger Versions
The debugger plugin supports different builds of the gdb debugger, both The debugger plugin supports different builds of the GDB debugger, both
with and without the ability to use Python scripting. The Python enabled with and without the ability to use Python scripting. The Python enabled
versions are preferred, but they are not available on Mac and on older versions are preferred, but they are not available on Mac and on older
versions of Linux. versions of Linux.
@@ -7229,7 +7230,7 @@
The Python version uses a script version of the debugging helpers The Python version uses a script version of the debugging helpers
that does not need any special setup. that does not need any special setup.
The CDB native debugger has similar funtionality to the non-Python gdb debugger The CDB native debugger has similar funtionality to the non-Python GDB debugger
engine. Specifically, it also uses compiled C++ code for the debugging engine. Specifically, it also uses compiled C++ code for the debugging
helper library. helper library.
@@ -7244,26 +7245,26 @@
\o Debugger Modes \o Debugger Modes
\row \row
\o Linux \o Linux
\o gcc \o GCC
\o gdb \o GDB
\o Yes \o Yes
\o Plain, Terminal, Attach, Remote, Core \o Plain, Terminal, Attach, Remote, Core
\row \row
\o Unix \o Unix
\o gcc \o GCC
\o gdb \o GDB
\o Yes \o Yes
\o Plain, Terminal, Attach, Remote, Core \o Plain, Terminal, Attach, Remote, Core
\row \row
\o Mac OS \o Mac OS
\o gcc \o GCC
\o gdb \o GDB
\o No \o No
\o Plain, Terminal, Attach, Core \o Plain, Terminal, Attach, Core
\row \row
\o Windows/MinGW \o Windows/MinGW
\o gcc \o GCC
\o gdb \o GDB
\o Yes \o Yes
\o Plain, Terminal, Attach, Remote, Core \o Plain, Terminal, Attach, Remote, Core
\row \row
@@ -7274,14 +7275,14 @@
\o Plain, Terminal, Attach, Post-Mortem \o Plain, Terminal, Attach, Post-Mortem
\row \row
\o Symbian \o Symbian
\o gcc \o GCC
\o gdb \o GDB
\o Yes \o Yes
\o On-device \o On-device
\row \row
\o Maemo \o Maemo
\o gcc \o GCC
\o gdb \o GDB
\o Yes \o Yes
\o On-device \o On-device
\endtable \endtable
@@ -7294,9 +7295,9 @@
[Advanced Topic] [Advanced Topic]
The gdb native debugger used internally by the debugger plugin runs in The GDB native debugger used internally by the debugger plugin runs in
different adapter modes to cope with the variety different adapter modes to cope with the variety
of supported platforms and environments. All gdb adapters inherit from of supported platforms and environments. All GDB adapters inherit from
AbstractGdbAdapter: AbstractGdbAdapter:
\list \list
@@ -7314,8 +7315,8 @@
\o RemoteGdbAdapter interacts with the gdbserver running on Linux. \o RemoteGdbAdapter interacts with the gdbserver running on Linux.
\o CodaGdbAdapter interacts with Symbian devices. The gdb protocol and \o CodaGdbAdapter interacts with Symbian devices. The GDB protocol and
the gdb serial protocol are used between gdb and the adapter. The the GDB serial protocol are used between GDB and the adapter. The
target communication framework (TCF) protocol is used between the target communication framework (TCF) protocol is used between the
adapter and the CODA debugging agent running on the device. adapter and the CODA debugging agent running on the device.
@@ -7339,10 +7340,10 @@
\o Notes \o Notes
\row \row
\o Gdb \o Gdb
\o On Linux and Windows, use the Python-enabled gdb versions that \o On Linux and Windows, use the Python-enabled GDB versions that
are installed when you install Qt Creator and Qt SDK. On Mac OS X, are installed when you install Qt Creator and Qt SDK. On Mac OS X,
use the gdb provided with Xcode. use the GDB provided with Xcode.
For a custom target, you can build your own Python-enabled gdb. For a custom target, you can build your own Python-enabled GDB.
Follow the instructions on Follow the instructions on
\l{http://developer.qt.nokia.com/wiki/QtCreatorBuildGdb}{Building Gdb}. \l{http://developer.qt.nokia.com/wiki/QtCreatorBuildGdb}{Building Gdb}.
You must use at least Python version 2.5, but we recommend that you You must use at least Python version 2.5, but we recommend that you
@@ -7626,7 +7627,7 @@
causing the \gui{Locals and Watchers} view to show unexpected causing the \gui{Locals and Watchers} view to show unexpected
data. data.
\row \row
\i The debug information provided by gcc does not include enough \i The debug information provided by GCC does not include enough
information about the time when a variable is initialized. information about the time when a variable is initialized.
Therefore, Qt Creator can not tell whether the contents of a Therefore, Qt Creator can not tell whether the contents of a
local variable contains "real data", or "initial noise". If a local variable contains "real data", or "initial noise". If a
@@ -7679,7 +7680,7 @@
\note Usually, you do not need this feature, because Qt Creator provides \note Usually, you do not need this feature, because Qt Creator provides
you with better ways to handle the task. For example, instead of using the you with better ways to handle the task. For example, instead of using the
gdb \c print command from the command line, you can create a watcher item GDB \c print command from the command line, you can create a watcher item
in the \gui{Locals and Watchers} view and examine the expression there. in the \gui{Locals and Watchers} view and examine the expression there.
\section1 Debugging C++ Based Applications \section1 Debugging C++ Based Applications
@@ -7902,7 +7903,7 @@
\section1 Debugging Helpers Based on Python \section1 Debugging Helpers Based on Python
Qt Creator uses gdb builds that enable Python scripting to display Qt Creator uses GDB builds that enable Python scripting to display
information in the \gui {Locals and Watchers} view. When Python scripting information in the \gui {Locals and Watchers} view. When Python scripting
is used, code (Debugging helpers) does not need to be injected into the is used, code (Debugging helpers) does not need to be injected into the
debugged process to nicely display QStringList or \c std::map contents, for debugged process to nicely display QStringList or \c std::map contents, for
@@ -7917,14 +7918,14 @@
\list \list
\o There is no Python-enabled gdb for Mac OS. Mac OS continues \o There is no Python-enabled GDB for Mac OS. Mac OS continues
injection with C++ based debugging helpers. injection with C++ based debugging helpers.
\o On the Symbian platform, an on-device debugging agent restricts the \o On the Symbian platform, an on-device debugging agent restricts the
communication between gdb and the device. Therefore, extracting communication between GDB and the device. Therefore, extracting
QObject properties, for example, is not possible. QObject properties, for example, is not possible.
\o There is no gdb to communicate with MSVC compiled applications on \o There is no GDB to communicate with MSVC compiled applications on
Windows. So information can be displayed nicely only in a limited Windows. So information can be displayed nicely only in a limited
fashion by using a cdb extension DLL. fashion by using a cdb extension DLL.
@@ -7932,7 +7933,7 @@
\section2 Extending the Python Based Debugging Helpers \section2 Extending the Python Based Debugging Helpers
On platforms featuring a Python-enabled version of the gdb debugger, On platforms featuring a Python-enabled version of the GDB debugger,
the data extraction is done by a Python script. This is more robust the data extraction is done by a Python script. This is more robust
as the script execution is separated from the debugged process. It as the script execution is separated from the debugged process. It
is also easier to extend as the script is less dependent on the is also easier to extend as the script is less dependent on the
@@ -7940,7 +7941,7 @@
To extend the shipped Python based debugging helpers for custom types, To extend the shipped Python based debugging helpers for custom types,
define one Python function per user defined type in the define one Python function per user defined type in the
gdb startup file. By default, the following startup file is used: GDB startup file. By default, the following startup file is used:
\c{~/.gdbinit}. To use another file, select \gui {Tools > Options... > Gdb} \c{~/.gdbinit}. To use another file, select \gui {Tools > Options... > Gdb}
and specify a filename in the \gui {Gdb startup script} field. and specify a filename in the \gui {Gdb startup script} field.
@@ -8148,7 +8149,7 @@
raise an exception. raise an exception.
\o \gui{putCallItem(self, name, item, func)} - \o \gui{putCallItem(self, name, item, func)} -
Uses gdb to call the function \c func on the value specified by Uses GDB to call the function \c func on the value specified by
\a {item.value} and output the resulting item. This function is \a {item.value} and output the resulting item. This function is
not available when debugging core dumps and it is not available not available when debugging core dumps and it is not available
on the Symbian platform due to restrictions imposed by the on-device on the Symbian platform due to restrictions imposed by the on-device
@@ -11077,7 +11078,7 @@
\row \row
\o -disable-gdb \o -disable-gdb
\o Debugger plugin: disable the GNU Symbolic Debugger (gdb) engine. \o Debugger plugin: disable the GNU Symbolic Debugger (GDB) engine.
\row \row
\o -disable-sdb \o -disable-sdb
@@ -11208,6 +11209,9 @@
\o Make sure you use at least Qt Creator 2.1. \o Make sure you use at least Qt Creator 2.1.
\o Make sure the debugger is set up properly. For more information,
see \l{Setting Up Debugger}.
\o In the \gui Debug mode, select \gui {Windows > Views > Debugger \o In the \gui Debug mode, select \gui {Windows > Views > Debugger
Log} to open the \gui {Debugger Log} view. Browse the contents of Log} to open the \gui {Debugger Log} view. Browse the contents of
the pane on the right hand side to find out what went wrong. the pane on the right hand side to find out what went wrong.
@@ -11230,18 +11234,18 @@
\section1 Built-in Debugger Is Slow During Startup and Runtime \section1 Built-in Debugger Is Slow During Startup and Runtime
The Qt Creator for Windows installation packages install gdb from MinGW. The Qt Creator for Windows installation packages install GDB from MinGW.
Unfortunately, gdb is quite slow on Windows. Qt Creator does not cause Unfortunately, GDB is quite slow on Windows. Qt Creator does not cause
this, as it interacts with gdb and adds custom dumpers for Qt types. this, as it interacts with GDB and adds custom dumpers for Qt types.
\note You can use Qt Creator with MSVC on Windows for debugging. \note You can use Qt Creator with MSVC on Windows for debugging.
\section1 Debugger Displays <not in scope> Message \section1 Debugger Displays <not in scope> Message
The message is created by the debugging helpers. Qt Creator posts an The message is created by the debugging helpers. Qt Creator posts an
expression to the gdb command line to invoke the debugging helpers. expression to the GDB command line to invoke the debugging helpers.
The expression includes the address of the object to examine. This The expression includes the address of the object to examine. This
address might be modified by gdb before the helper function is called. It address might be modified by GDB before the helper function is called. It
is unclear why and when this happens, but if it happens, the debugging is unclear why and when this happens, but if it happens, the debugging
helpers operate on wrong data and come to wrong conclusions. Most likely, helpers operate on wrong data and come to wrong conclusions. Most likely,
they find garbage and declare the variable to be <not in scope>. they find garbage and declare the variable to be <not in scope>.

File diff suppressed because it is too large Load Diff

View File

@@ -1050,6 +1050,7 @@ unsigned CdbEngine::debuggerCapabilities() const
{ {
return DisassemblerCapability | RegisterCapability | ShowMemoryCapability return DisassemblerCapability | RegisterCapability | ShowMemoryCapability
|WatchpointCapability|JumpToLineCapability|AddWatcherCapability |WatchpointCapability|JumpToLineCapability|AddWatcherCapability
|ReloadModuleCapability
|BreakOnThrowAndCatchCapability // Sort-of: Can break on throw(). |BreakOnThrowAndCatchCapability // Sort-of: Can break on throw().
|BreakModuleCapability; |BreakModuleCapability;
} }

View File

@@ -162,7 +162,7 @@ enum DebuggerCapabilities
ReverseSteppingCapability = 0x1, ReverseSteppingCapability = 0x1,
SnapshotCapability = 0x2, SnapshotCapability = 0x2,
AutoDerefPointersCapability = 0x4, AutoDerefPointersCapability = 0x4,
DisassemblerCapability = 0x80, DisassemblerCapability = 0x8,
RegisterCapability = 0x10, RegisterCapability = 0x10,
ShowMemoryCapability = 0x20, ShowMemoryCapability = 0x20,
JumpToLineCapability = 0x40, JumpToLineCapability = 0x40,

View File

@@ -127,7 +127,8 @@ CodaGdbAdapter::CodaGdbAdapter(GdbEngine *engine) :
m_uid(0), m_uid(0),
m_verbose(0), m_verbose(0),
m_firstResumableExeLoadedEvent(false), m_firstResumableExeLoadedEvent(false),
m_registerRequestPending(false) m_registerRequestPending(false),
m_firstHelloEvent(true)
{ {
m_bufferedMemoryRead = true; m_bufferedMemoryRead = true;
// Disable buffering if gdb's dcache is used. // Disable buffering if gdb's dcache is used.
@@ -316,8 +317,11 @@ void CodaGdbAdapter::codaEvent(const CodaEvent &e)
switch (e.type()) { switch (e.type()) {
case CodaEvent::LocatorHello: case CodaEvent::LocatorHello:
m_codaDevice->sendLoggingAddListenerCommand(CodaCallback()); if (state() == EngineSetupRequested && m_firstHelloEvent) {
startGdb(); // Commands are only accepted after hello m_firstHelloEvent = false;
m_codaDevice->sendLoggingAddListenerCommand(CodaCallback());
startGdb(); // Commands are only accepted after hello
}
break; break;
case CodaEvent::RunControlModuleLoadSuspended: // A module was loaded case CodaEvent::RunControlModuleLoadSuspended: // A module was loaded
handleCodaRunControlModuleLoadContextSuspendedEvent( handleCodaRunControlModuleLoadContextSuspendedEvent(
@@ -1027,6 +1031,7 @@ void CodaGdbAdapter::startAdapter()
m_session.reset(); m_session.reset();
m_firstResumableExeLoadedEvent = true; m_firstResumableExeLoadedEvent = true;
m_tcfProcessId.clear(); m_tcfProcessId.clear();
m_firstHelloEvent = true;
// Retrieve parameters. // Retrieve parameters.
const DebuggerStartParameters &parameters = startParameters(); const DebuggerStartParameters &parameters = startParameters();

View File

@@ -199,6 +199,7 @@ private:
bool m_registerRequestPending; bool m_registerRequestPending;
QByteArray m_tcfProcessId; QByteArray m_tcfProcessId;
LocalGdbProcess m_gdbProc; LocalGdbProcess m_gdbProc;
bool m_firstHelloEvent;
}; };
} // namespace Internal } // namespace Internal

View File

@@ -46,7 +46,7 @@
<widget class="QLabel" name="labelGdbWatchdogTimeout"> <widget class="QLabel" name="labelGdbWatchdogTimeout">
<property name="toolTip"> <property name="toolTip">
<string>This is the number of seconds Qt Creator will wait before <string>This is the number of seconds Qt Creator will wait before
it terminates non-responsive gdb process. The default value of 20 seconds it terminates a non-responsive GDB process. The default value of 20 seconds
should be sufficient for most applications, but there are situations when should be sufficient for most applications, but there are situations when
loading big libraries or listing source files takes much longer than that loading big libraries or listing source files takes much longer than that
on slow machines. In this case, the value should be increased.</string> on slow machines. In this case, the value should be increased.</string>
@@ -60,7 +60,7 @@ on slow machines. In this case, the value should be increased.</string>
<widget class="QSpinBox" name="spinBoxGdbWatchdogTimeout"> <widget class="QSpinBox" name="spinBoxGdbWatchdogTimeout">
<property name="toolTip"> <property name="toolTip">
<string>This is the number of seconds Qt Creator will wait before <string>This is the number of seconds Qt Creator will wait before
it terminates non-responsive gdb process. The default value of 20 seconds it terminates a non-responsive GDB process. The default value of 20 seconds
should be sufficient for most applications, but there are situations when should be sufficient for most applications, but there are situations when
loading big libraries or listing source files takes much longer than that loading big libraries or listing source files takes much longer than that
on slow machines. In this case, the value should be increased.</string> on slow machines. In this case, the value should be increased.</string>
@@ -85,7 +85,8 @@ on slow machines. In this case, the value should be increased.</string>
<item row="2" column="0" colspan="2"> <item row="2" column="0" colspan="2">
<widget class="QCheckBox" name="checkBoxSkipKnownFrames"> <widget class="QCheckBox" name="checkBoxSkipKnownFrames">
<property name="toolTip"> <property name="toolTip">
<string>When this option is checked, 'Step Into' compresses several steps into one in certain situations, leading to 'less noisy' debugging. So will, e.g., the atomic reference counting code be skipped, and a single 'Step Into' for a signal emission will end up directly in the slot connected to it.</string> <string>Allows 'Step Into' to compress several steps into one step for less noisy debugging. For example, the atomic reference
counting code is skipped, and a single 'Step Into' for a signal emission ends up directly in the slot connected to it.</string>
</property> </property>
<property name="text"> <property name="text">
<string>Skip known frames when stepping</string> <string>Skip known frames when stepping</string>
@@ -154,7 +155,7 @@ on slow machines. In this case, the value should be increased.</string>
<string>This is the slowest but safest option.</string> <string>This is the slowest but safest option.</string>
</property> </property>
<property name="text"> <property name="text">
<string>Try to set breakpoints in plugins always automatically.</string> <string>Try to set breakpoints in plugins always automatically</string>
</property> </property>
</widget> </widget>
</item> </item>

View File

@@ -29,7 +29,7 @@
<item> <item>
<widget class="QCheckBox" name="gdbEmu"> <widget class="QCheckBox" name="gdbEmu">
<property name="text"> <property name="text">
<string>Use GDB python dumpers</string> <string>Use GDB Python dumpers</string>
</property> </property>
<property name="checked"> <property name="checked">
<bool>false</bool> <bool>false</bool>

View File

@@ -252,8 +252,10 @@ static QStringList sourceFileNames()
QStringList files; QStringList files;
files << QLatin1String("main.cpp") << QLatin1String("qmldump.pro") files << QLatin1String("main.cpp") << QLatin1String("qmldump.pro")
<< QLatin1String("qmlstreamwriter.cpp") << QLatin1String("qmlstreamwriter.h") << QLatin1String("qmlstreamwriter.cpp") << QLatin1String("qmlstreamwriter.h")
<< QLatin1String("LICENSE.LGPL") << QLatin1String("LGPL_EXCEPTION.TXT") << QLatin1String("LICENSE.LGPL") << QLatin1String("LGPL_EXCEPTION.TXT");
<< QLatin1String("Info.plist"); #ifdef Q_OS_MAC
files << QLatin1String("Info.plist");
#endif
return files; return files;
} }

View File

@@ -194,7 +194,7 @@ void MaemoRunConfigurationWidget::addDebuggingWidgets(QVBoxLayout *mainLayout)
QHBoxLayout *debugRadioButtonsLayout = new QHBoxLayout; QHBoxLayout *debugRadioButtonsLayout = new QHBoxLayout;
debugLayout->addRow(debugRadioButtonsLayout); debugLayout->addRow(debugRadioButtonsLayout);
QRadioButton *gdbButton = new QRadioButton(tr("Use remote GDB")); QRadioButton *gdbButton = new QRadioButton(tr("Use remote GDB"));
QRadioButton *gdbServerButton = new QRadioButton(tr("Use remote gdbserver")); QRadioButton *gdbServerButton = new QRadioButton(tr("Use remote GDB server"));
debugRadioButtonsLayout->addWidget(gdbButton); debugRadioButtonsLayout->addWidget(gdbButton);
debugRadioButtonsLayout->addWidget(gdbServerButton); debugRadioButtonsLayout->addWidget(gdbServerButton);
debugRadioButtonsLayout->addStretch(1); debugRadioButtonsLayout->addStretch(1);
@@ -429,7 +429,7 @@ void MaemoRunConfigurationWidget::handleDebuggingTypeChanged(bool useGdb)
m_runConfiguration->setUseRemoteGdb(useGdb); m_runConfiguration->setUseRemoteGdb(useGdb);
const QString detailsText = useGdb ? const QString detailsText = useGdb ?
tr("<b>Debugging details:</b> Use GDB") : tr("<b>Debugging details:</b> Use GDB") :
tr("<b>Debugging details:</b> Use gdbserver"); tr("<b>Debugging details:</b> Use GDB server");
m_debugDetailsContainer->setSummaryText(detailsText); m_debugDetailsContainer->setSummaryText(detailsText);
} }

View File

@@ -87,7 +87,7 @@ static QString armVersionString(RvctToolChain::ArmVersion av)
static Utils::Environment baseEnvironment(RvctToolChain *tc) static Utils::Environment baseEnvironment(RvctToolChain *tc)
{ {
Utils::Environment result; Utils::Environment result;
tc->addToEnvironment(result); result.modify(tc->environmentChanges());
return result; return result;
} }

View File

@@ -463,6 +463,7 @@ static Debugger::DebuggerStartParameters s60DebuggerStartParams(const S60DeviceR
sp.executableUid = rc->executableUid(); sp.executableUid = rc->executableUid();
sp.serverAddress = activeDeployConf->deviceAddress(); sp.serverAddress = activeDeployConf->deviceAddress();
sp.serverPort = activeDeployConf->devicePort().toInt(); sp.serverPort = activeDeployConf->devicePort().toInt();
sp.displayName = rc->displayName();
sp.communicationChannel = activeDeployConf->communicationChannel() == S60DeployConfiguration::CommunicationCodaTcpConnection? sp.communicationChannel = activeDeployConf->communicationChannel() == S60DeployConfiguration::CommunicationCodaTcpConnection?
Debugger::DebuggerStartParameters::CommunicationChannelTcpIp: Debugger::DebuggerStartParameters::CommunicationChannelTcpIp:

View File

@@ -173,8 +173,9 @@ QtVersionManager::QtVersionManager()
id, id,
isAutodetected, isAutodetected,
autodetectionSource); autodetectionSource);
version->setSystemRoot(s->value("S60SDKDirectory").toString()); // Make sure we do not import non-native separators from old Qt Creator versions:
version->setSbsV2Directory(s->value(QLatin1String("SBSv2Directory")).toString()); version->setSystemRoot(QDir::fromNativeSeparators(s->value("S60SDKDirectory").toString()));
version->setSbsV2Directory(QDir::fromNativeSeparators(s->value(QLatin1String("SBSv2Directory")).toString()));
// Update from pre-2.2: // Update from pre-2.2:
const QString mingwDir = s->value(QLatin1String("MingwDirectory")).toString(); const QString mingwDir = s->value(QLatin1String("MingwDirectory")).toString();