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
within the logs of Qt Creator sources. Simply check it out from the public git
repository. For example:
The most important changes are listed in this document. For a complete
list of changes, see the Git log for the Qt Creator sources that
you can check out from the public Git repository. For example:
git clone git://gitorious.org/qt-creator/qt-creator.git
git log --cherry-pick --pretty=oneline origin/2.1...origin/2.2
General
* Added support for running user defined external tools (Tools->External)
* Moved toolchain definitions out of Qt versions.
* You can now define toolchains in Tools->Options->ToolChains
* Creator now supports more than one instance of each kind of toolchain
* Support for MIME type customization through editing of patterns and
magic matchers.
* Add support for running user defined external tools (Tools > External)
* Move tool chain definitions out of Qt versions:
* You can now define tool chains in Tools > Options > Tool Chains
* Qt Creator now supports more than one instance of a tool chain
* Add support for customizing MIME types by editing patterns and
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
* Add new Inkpot color scheme
* Moved 'Open in External Editor' to Tools->External->Text
* Add an Inkpot color scheme
* Add UTF-8 BOM support
* GLSL Support with:
- syntax checking
- highlighting
- code completion
* Add 'expand/collapse all' context menu entry to Outline pane
* Support for user defined macros was contributed by Nicolas Arnaud-Cormos
* Snippet editor with syntax highlighting, indentation, and basic auto
completion for C++ and QML.
* Move the Open in External Editor item to Tools > External > Text
* Add the Expand/Collapse All context menu item to the Outline pane
* Add support for user-defined macros (contributed by Nicolas Arnaud-Cormos)
* Add a snippet editor with syntax highlighting, indentation, and basic
auto-completion for C++ and QML
* Add GLSL support with:
- Syntax checking
- 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
* QMake project support should be more robust against syntax errors
* Treatment of command line arguments of processes started from build
and run configurations underwent heavy modifications:
- argument lists use native shell syntax; this affects quoting and
Managing Projects
* Improve the robustness of qmake project support against syntax errors
* Change the handling of command line arguments of processes that are
started from build and run configurations:
- Argument lists use native shell syntax; this affects quoting and
environment variable expansion most
- the SOURCEDIR and BUILDDIR environment variables were replaced
with %{sourceDir} and %{buildDir} macros
- this affects working directories and executable paths as well
* CMake: Add Ui completion, changes in .ui files are picked up without
a rebuild.
* Syntax highlighting and completion for QMake project files
* Text editor behavior settings now avaiable on a per-project basis.
- The SOURCEDIR and BUILDDIR environment variables were replaced
with %{sourceDir} and %{buildDir} variables
- This affects working directories and executable paths as well
* Support syntax highlighting and completion for qmake project files
* CMake: Add UI completion, changes in .ui files are picked up without
a rebuild
* 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
* 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,
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
* Made it possible to pin debugger tooltips.
* Reworked global architecture to allow multiple debugging sessions (for
different projects, combined Qml/C++ debugging, project 'snapshots', ...)
* Reworked breakpoint handling: new special breakpoint types for "break
on throw", "break on main", data breakpoints
* Introduce combined c++/qml debugging (combined stack, cross-step) (gdb only)
* Make it possible to pin debugger tooltips
* Rework global architecture to allow multiple debugging sessions (for
different projects, combined QML/C++ debugging, project snapshots,
and so on)
* Rework breakpoint handling: add special breakpoint types for break
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
* New dumpers for QTextCursor, QTextDocument, __m128, QScriptValue
QBasicAtomicPointer, bit fields, boost::shared_ptr (gdb only)
* Add dumpers for QTextCursor, QTextDocument, __m128, QScriptValue
QBasicAtomicPointer, bit fields, boost::shared_ptr (GDB only)
* Improve dumpers for QRegion, QVariant (custom types), QSharedPointer,
QMultiMap (QTCREATORBUG-3122), QObject, QWeakPointer
* Make alphabetic structure member sorting optional
* Make dumpers robust in case of missing debug information
* Improve python dumper profiling support
* Improve Python dumper profiling support
* Improve stepping performance
* 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 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 'Jump To/Run to' when in instruction-wise mode
* Several fixed to the "watcher" handling
* Fix Jump To/Run To when in instruction-wise mode
* Fix the watcher handling
* Allow re-running debugger engines, QTCREATORBUG-3073
* Robust process control after -exec-interrupt errors, QTCREATORBUG-2850
* Robust detection of Qt-in-namespace builds
* 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 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
* Add QuickFix for implementing setters/getters for a Q_PROPERTY
* Add documentation about QuickFixes
* Add a refactoring action for implementing setters and getters for
a Q_PROPERTY
* Add documentation for refactoring actions
* Fix switch statement indentation for GNU and Whitesmiths
style, QTCREATORBUG-2994
* Fix indentation of labels
* Highlighting for virtual functions
* Navigate to correct overloaded function/method
* Support highlighting for virtual functions
* Navigate to correct overloaded function or method
QML/JS Support
* Add wizard for creating JavaScript files, QTCREATORBUG-3070
* Add local-file completion for url properties, QTCREATORBUG-2619
* Add warning about invalid files in url properties
* Add local-file completion for URL properties, QTCREATORBUG-2619
* Add warning about invalid files in URL properties
* Add file name completion in imports, QTCREATORBUG-3067
* Add a locator filter for JS functions, QTCREATORBUG-2607
* Add JSlint-style warnings about common JS pitfalls, QTCREATORBUG-3071
* 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
* Improve error reporting of failed plugin dumps
* Complete a trailing '{' for 'A on b' object bindings, QTCREATORBUG-2642
* 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
* Change qmldump to output QML instead of XML
* Fix automatic '.' import to also pick up QML modules, QTCREATORBUG-3768
* 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 '{' not being an electric character, QTCREATORBUG-3405
* Fix indentation of 'foo: Namesp.Type {', QTCREATORBUG-3371
* .qmlproject format: Allow specifying the 'mainFile' qml file, bump version to 1.1
* 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:
* Implement Ctrl-N/Ctrl-P
* Implement 's' in visual block mode
* Fix Alt-Gr handling on Windows
* Handle more Ctrl-W + <x> commands
Help
Platform Specific
@@ -150,34 +162,23 @@ Linux (GNOME and KDE)
Windows
Symbian Target
* Added support for the new on-device debugging agent (CODA)
* Add support for the new on-device debugging agent (CODA)
Maemo Target
* Added Meego support.
* Added a device configuration wizard.
* Added a publishing wizard for Fremantle/extras-devel.
* On-demand creation of Desktop files.
* For Fremantle, it's possible to disable packaging again.
* Add MeeGo support
* Add a wizard for configuring connections to Maemo and MeeGo devices
* Add a wizard for publishing applications to Fremantle/extras-devel
* Create desktop files on demand
* Allow disabling packaging for Fremantle
Designer
Qt Designer
Version control plugins
* Bazaar support was 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
* Support Bazaar (contributed by Hugues Delorme)
Additional credits go to:
* The Inkpot color scheme was based on the Vim color scheme by
Ciaran McCreesh, adapted for Qt Creator by Jan Kundrát and
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

View File

@@ -13,7 +13,7 @@ include(macros.qdocconf)
include(qt-cpp-ignore.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

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{Using Command Line Options}
\o \l{Getting Help}
\o \l{Tips and Tricks}
\o \l{Keyboard Shortcuts}
\o \l{FAQ}
\o \l{Tips and Tricks}
\o \l{Known Issues}
\o \l{Glossary}
\o \l{Acknowledgements}
@@ -370,7 +371,7 @@
\list
\o GNU Symbolic Debugger (gdb)
\o GNU Symbolic Debugger (GDB)
\o Microsoft Console Debugger (CDB)
@@ -406,7 +407,7 @@
plugin understands the internal layout of several Qt classes, for
example, QString, the Qt containers, and most importantly QObject
(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
a useful way.
@@ -1719,7 +1720,7 @@
and remove snippets in the snippet editor. To open the editor, select
\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:
@@ -4591,9 +4592,9 @@
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
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
settings for gdb.
settings for GDB.
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
@@ -7042,7 +7043,7 @@
Qt Creator provides a debugger plugin that acts
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.
The following sections describe debugging with Qt Creator:
@@ -7203,7 +7204,7 @@
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
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.
\note To use the debugging tools for Windows, you must install them and add the
@@ -7216,7 +7217,7 @@
\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
versions are preferred, but they are not available on Mac and on older
versions of Linux.
@@ -7229,7 +7230,7 @@
The Python version uses a script version of the debugging helpers
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
helper library.
@@ -7244,26 +7245,26 @@
\o Debugger Modes
\row
\o Linux
\o gcc
\o gdb
\o GCC
\o GDB
\o Yes
\o Plain, Terminal, Attach, Remote, Core
\row
\o Unix
\o gcc
\o gdb
\o GCC
\o GDB
\o Yes
\o Plain, Terminal, Attach, Remote, Core
\row
\o Mac OS
\o gcc
\o gdb
\o GCC
\o GDB
\o No
\o Plain, Terminal, Attach, Core
\row
\o Windows/MinGW
\o gcc
\o gdb
\o GCC
\o GDB
\o Yes
\o Plain, Terminal, Attach, Remote, Core
\row
@@ -7274,14 +7275,14 @@
\o Plain, Terminal, Attach, Post-Mortem
\row
\o Symbian
\o gcc
\o gdb
\o GCC
\o GDB
\o Yes
\o On-device
\row
\o Maemo
\o gcc
\o gdb
\o GCC
\o GDB
\o Yes
\o On-device
\endtable
@@ -7294,9 +7295,9 @@
[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
of supported platforms and environments. All gdb adapters inherit from
of supported platforms and environments. All GDB adapters inherit from
AbstractGdbAdapter:
\list
@@ -7314,8 +7315,8 @@
\o RemoteGdbAdapter interacts with the gdbserver running on Linux.
\o CodaGdbAdapter interacts with Symbian devices. The gdb protocol and
the gdb serial protocol are used between gdb and the adapter. The
\o CodaGdbAdapter interacts with Symbian devices. The GDB protocol and
the GDB serial protocol are used between GDB and the adapter. The
target communication framework (TCF) protocol is used between the
adapter and the CODA debugging agent running on the device.
@@ -7339,10 +7340,10 @@
\o Notes
\row
\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,
use the gdb provided with Xcode.
For a custom target, you can build your own Python-enabled gdb.
use the GDB provided with Xcode.
For a custom target, you can build your own Python-enabled GDB.
Follow the instructions on
\l{http://developer.qt.nokia.com/wiki/QtCreatorBuildGdb}{Building Gdb}.
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
data.
\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.
Therefore, Qt Creator can not tell whether the contents of 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
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.
\section1 Debugging C++ Based Applications
@@ -7902,7 +7903,7 @@
\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
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
@@ -7917,14 +7918,14 @@
\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.
\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.
\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
fashion by using a cdb extension DLL.
@@ -7932,7 +7933,7 @@
\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
as the script execution is separated from the debugged process. It
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,
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}
and specify a filename in the \gui {Gdb startup script} field.
@@ -8148,7 +8149,7 @@
raise an exception.
\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
not available when debugging core dumps and it is not available
on the Symbian platform due to restrictions imposed by the on-device
@@ -11077,7 +11078,7 @@
\row
\o -disable-gdb
\o Debugger plugin: disable the GNU Symbolic Debugger (gdb) engine.
\o Debugger plugin: disable the GNU Symbolic Debugger (GDB) engine.
\row
\o -disable-sdb
@@ -11208,6 +11209,9 @@
\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
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.
@@ -11230,18 +11234,18 @@
\section1 Built-in Debugger Is Slow During Startup and Runtime
The Qt Creator for Windows installation packages install gdb from MinGW.
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.
The Qt Creator for Windows installation packages install GDB from MinGW.
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.
\note You can use Qt Creator with MSVC on Windows for debugging.
\section1 Debugger Displays <not in scope> Message
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
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
helpers operate on wrong data and come to wrong conclusions. Most likely,
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
|WatchpointCapability|JumpToLineCapability|AddWatcherCapability
|ReloadModuleCapability
|BreakOnThrowAndCatchCapability // Sort-of: Can break on throw().
|BreakModuleCapability;
}

View File

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

View File

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

View File

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

View File

@@ -46,7 +46,7 @@
<widget class="QLabel" name="labelGdbWatchdogTimeout">
<property name="toolTip">
<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
loading big libraries or listing source files takes much longer than that
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">
<property name="toolTip">
<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
loading big libraries or listing source files takes much longer than that
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">
<widget class="QCheckBox" name="checkBoxSkipKnownFrames">
<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 name="text">
<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>
</property>
<property name="text">
<string>Try to set breakpoints in plugins always automatically.</string>
<string>Try to set breakpoints in plugins always automatically</string>
</property>
</widget>
</item>

View File

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

View File

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

View File

@@ -194,7 +194,7 @@ void MaemoRunConfigurationWidget::addDebuggingWidgets(QVBoxLayout *mainLayout)
QHBoxLayout *debugRadioButtonsLayout = new QHBoxLayout;
debugLayout->addRow(debugRadioButtonsLayout);
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(gdbServerButton);
debugRadioButtonsLayout->addStretch(1);
@@ -429,7 +429,7 @@ void MaemoRunConfigurationWidget::handleDebuggingTypeChanged(bool useGdb)
m_runConfiguration->setUseRemoteGdb(useGdb);
const QString detailsText = useGdb ?
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);
}

View File

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

View File

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

View File

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