2012-05-29 14:02:17 +02:00
|
|
|
/****************************************************************************
|
|
|
|
**
|
2012-10-02 09:12:39 +02:00
|
|
|
** Copyright (c) 2012 Digia Plc and/or its subsidiary(-ies).
|
|
|
|
** Contact: http://www.qt-project.org/legal
|
2012-05-29 14:02:17 +02:00
|
|
|
**
|
2012-10-02 09:12:39 +02:00
|
|
|
** This file is part of Qt Creator
|
2012-05-29 14:02:17 +02:00
|
|
|
**
|
|
|
|
**
|
|
|
|
** 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.
|
|
|
|
**
|
|
|
|
**
|
|
|
|
****************************************************************************/
|
|
|
|
|
|
|
|
// **********************************************************************
|
|
|
|
// NOTE: the sections are not ordered by their logical order to avoid
|
|
|
|
// reshuffling the file each time the index order changes (i.e., often).
|
|
|
|
// Run the fixnavi.pl script to adjust the links to the index order.
|
|
|
|
// **********************************************************************
|
|
|
|
|
|
|
|
|
|
|
|
/*!
|
|
|
|
\contentspage index.html
|
|
|
|
\previouspage creator-debugging.html
|
|
|
|
\page creator-debugger-engines.html
|
|
|
|
\nextpage creator-debugger-operating-modes.html
|
|
|
|
|
|
|
|
\title Setting Up Debugger
|
|
|
|
|
2012-09-03 17:50:37 +02:00
|
|
|
The main debugger settings are associated with the
|
|
|
|
\l{glossary-buildandrun-kit}{kit} you build and run your project with. To specify the
|
|
|
|
debugger and compiler to use for each kit, select \gui Tools >
|
|
|
|
\gui Options > \gui {Build and Run} > \gui Kits.
|
2012-05-29 14:02:17 +02:00
|
|
|
|
|
|
|
You need to set up the debugger only if the automatic setup
|
|
|
|
fails, because the native debugger is missing (as is usually the
|
|
|
|
case for the CDB debugger on Windows, which you always must install
|
2012-08-27 11:14:15 +02:00
|
|
|
yourself) or because the installed version is not supported (for example,
|
2012-05-29 14:02:17 +02:00
|
|
|
when your system contains no, or an outdated version of GDB and you
|
|
|
|
want to use a locally installed replacement instead).
|
|
|
|
|
2012-08-27 11:14:15 +02:00
|
|
|
\note If you need to change the debugger to use for an automatically
|
2012-09-03 17:50:37 +02:00
|
|
|
detected \l{glossary-buildandrun-kit}{kit},
|
|
|
|
you can \gui{Clone} the kit and change the parameters in
|
|
|
|
the clone. Make sure to select the cloned kit for your project.
|
2012-05-29 14:02:17 +02:00
|
|
|
|
|
|
|
\note To use the debugging tools for Windows, you must install them
|
|
|
|
and add the Symbol Server provided by Microsoft to the symbol search
|
|
|
|
path of the debugger. For more information, see \l{Setting the Symbol
|
|
|
|
Server in Windows}.
|
|
|
|
|
|
|
|
\note To use the Free Software Foundation (FSF) version of GDB on
|
2012-09-03 17:50:37 +02:00
|
|
|
Mac OS, you must sign it and modify your \l{glossary-buildandrun-kit}{kit} settings.
|
2012-05-29 14:02:17 +02:00
|
|
|
|
|
|
|
This section explains the options you have for debugging C++ code
|
|
|
|
and provides installation notes for the supported native debuggers.
|
|
|
|
It also applies for code in other compiled languages such as C,
|
|
|
|
FORTRAN, Ada.
|
|
|
|
|
|
|
|
\section1 Supported Native Debugger Versions
|
|
|
|
|
|
|
|
Qt Creator supports essentially two native debuggers when working with
|
|
|
|
compiled code. On most supported platforms, the GNU Symbolic Debugger
|
|
|
|
GDB can be used. On Microsoft Windows, when using the Microsoft tool chain
|
|
|
|
the Microsoft Console Debugger CDB, is needed. There is also an
|
|
|
|
incomplete experimental interface to LLDB on Mac OS and Linux available
|
|
|
|
when building \QC from source.
|
|
|
|
|
|
|
|
\section2 Supported GDB Versions
|
|
|
|
|
2012-06-11 15:23:19 +02:00
|
|
|
GDB comes in two varieties with common roots.
|
|
|
|
|
|
|
|
One is used on Mac OS X and does not support Python as scripting language.
|
|
|
|
The minimal supported versions in is GDB 6.3.50-20050815, build 1469.
|
|
|
|
|
|
|
|
The second is maintained by the Free Software Foundation, and can
|
|
|
|
use Python as scripting language. The minimal supported version
|
|
|
|
in this case is FSF GDB 7.4.1, using Python version 2.6 or 2.7.
|
|
|
|
Note that Python 3.x is not supported by GDB.
|
2012-05-29 14:02:17 +02:00
|
|
|
|
|
|
|
The Python enabled versions are very convenient to interface,
|
|
|
|
and much of \QC's advanced data display options depend on the
|
|
|
|
availability of Python scripting. Since Python enabled versions
|
|
|
|
of GDB are bundled with all recent Linux versions, active
|
|
|
|
support for non-Python builds has been dropped for platforms
|
|
|
|
other than Mac OS X.
|
|
|
|
|
|
|
|
The non-Python versions use the compiled version of the debugging
|
|
|
|
helpers, that you must enable separately. For more information, see
|
|
|
|
\l{Debugging Helpers Based on C++}.
|
|
|
|
|
|
|
|
The Python version uses a script version of the debugging helpers
|
|
|
|
that does not need any special setup.
|
|
|
|
|
|
|
|
FSF GDB can also be compiled for Mac OS, but the build is currently
|
|
|
|
unstable, and thererefore, this is not recommended.
|
|
|
|
|
|
|
|
\section2 Supported CDB Versions
|
|
|
|
|
2012-09-21 16:05:58 +02:00
|
|
|
The CDB native debugger has similar functionality to the non-Python GDB
|
2012-05-29 14:02:17 +02:00
|
|
|
debugger engine. Specifically, it also uses compiled C++ code for the
|
|
|
|
debugging helper library.
|
|
|
|
|
|
|
|
The following table summarizes the support for debugging C++ code:
|
|
|
|
|
|
|
|
\table
|
|
|
|
\header
|
|
|
|
\o Platform
|
|
|
|
\o Compiler
|
|
|
|
\o Native Debugger
|
|
|
|
\row
|
|
|
|
\o Linux
|
|
|
|
\o GCC, ICC
|
|
|
|
\o GDB
|
|
|
|
\row
|
|
|
|
\o Unix
|
|
|
|
\o GCC, ICC
|
|
|
|
\o GDB
|
|
|
|
\row
|
|
|
|
\o Mac OS X
|
|
|
|
\o GCC
|
|
|
|
\o Apple GDB, FSF GDB (experimental)
|
|
|
|
\row
|
|
|
|
\o Windows/MinGW
|
|
|
|
\o GCC
|
|
|
|
\o GDB
|
|
|
|
\row
|
|
|
|
\o Windows/MSVC
|
|
|
|
\o Microsoft Visual C++ Compiler
|
|
|
|
\o Debugging Tools for Windows/CDB
|
|
|
|
\row
|
|
|
|
\o Maemo, MeeGo
|
|
|
|
\o GCC
|
|
|
|
\o GDB
|
|
|
|
\endtable
|
|
|
|
|
|
|
|
For more information on the debugger modes, see
|
|
|
|
\l{Launching the Debugger in Different Modes}.
|
|
|
|
|
|
|
|
\omit
|
|
|
|
|
|
|
|
\section2 GDB Adapter Modes
|
|
|
|
|
|
|
|
[Advanced Topic]
|
|
|
|
|
|
|
|
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 AbstractGdbAdapter:
|
|
|
|
|
|
|
|
\list
|
|
|
|
|
|
|
|
\o PlainGdbAdapter debugs locally started GUI processes. It is
|
|
|
|
physically split into parts that are relevant only when Python is
|
|
|
|
available, parts relevant only when Python is not available, and
|
|
|
|
mixed code.
|
|
|
|
|
|
|
|
\o TermGdbAdapter debugs locally started processes that need a
|
|
|
|
console.
|
|
|
|
|
|
|
|
\o AttachGdbAdapter debugs local processes started outside \QC.
|
|
|
|
|
|
|
|
\o CoreGdbAdapter debugs core files generated from crashes.
|
|
|
|
|
|
|
|
\o RemoteGdbAdapter interacts with the GDB server running on Linux.
|
|
|
|
|
|
|
|
\endlist
|
|
|
|
|
|
|
|
\endomit
|
|
|
|
|
|
|
|
\section1 Installing Native Debuggers
|
|
|
|
|
|
|
|
Check the table below for the supported versions and other important
|
|
|
|
information about installing native debuggers.
|
|
|
|
|
|
|
|
\table
|
|
|
|
\header
|
|
|
|
\o Native Debugger
|
|
|
|
\o Notes
|
|
|
|
\row
|
|
|
|
\o GDB
|
|
|
|
\o On Linux and Windows, use the Python-enabled GDB versions that
|
|
|
|
are installed when you install \QC and Qt SDK. On Mac OS X,
|
|
|
|
use the GDB provided with Xcode.
|
2012-09-03 17:50:37 +02:00
|
|
|
You can also build your own Python-enabled GDB. Follow the instructions in
|
2012-05-29 14:02:17 +02:00
|
|
|
\l{http://developer.qt.nokia.com/wiki/QtCreatorBuildGdb}
|
|
|
|
{Building GDB}.
|
|
|
|
|
|
|
|
\row
|
|
|
|
\o Debugging tools for Windows
|
|
|
|
\o To use this engine, you must install the
|
|
|
|
\e{Debugging tools for Windows}. You can download them from
|
|
|
|
\l{http://msdn.microsoft.com/en-us/windows/hardware/gg463009/}
|
|
|
|
{Download and Install Debugging Tools for Windows}.
|
|
|
|
|
|
|
|
\note Visual Studio does not include the Debugging tools needed,
|
|
|
|
and therefore, you must install them separately.
|
|
|
|
|
|
|
|
The pre-built \QSDK for Windows makes use of the library if it
|
|
|
|
is present on the system. When manually building \QC using
|
|
|
|
the Microsoft Visual C++ Compiler, the build process checks for
|
|
|
|
the required files in
|
|
|
|
\c{"%ProgramFiles%\Debugging Tools for Windows"}.
|
|
|
|
|
|
|
|
It is highly recommended that you add the Symbol Server provided
|
|
|
|
by Microsoft to the symbol search path of the debugger. The
|
|
|
|
Symbol Server provides you with debugging informaton for the
|
|
|
|
operating system libraries for debugging Windows applications.
|
|
|
|
For more information, see
|
|
|
|
\l{Setting the Symbol Server in Windows}.
|
|
|
|
|
|
|
|
\row
|
|
|
|
\o Debugging tools for Mac OS X
|
|
|
|
\o The Qt binary distribution contains both debug and release
|
|
|
|
variants of the libraries. But you have to explicitly tell the
|
|
|
|
runtime linker that you want to use the debug libraries even if
|
|
|
|
your application is compiled as debug, as release is the default
|
|
|
|
library.
|
|
|
|
|
|
|
|
If you use a qmake based project in \QC, you can set a
|
|
|
|
flag in your \l{glossary-run-config}{run configuration}, in
|
|
|
|
\gui Projects mode. In the run configuration, select
|
|
|
|
\gui{Use debug version of frameworks}.
|
|
|
|
|
|
|
|
For more detailed information about debugging on the Mac OS X,
|
|
|
|
see: \l{http://developer.apple.com/library/mac/#technotes/tn2124/_index.html#//apple_ref/doc/uid/DTS10003391}
|
|
|
|
{Mac OS X Debugging Magic}.
|
|
|
|
|
|
|
|
You can download an experimental version of FSF GDB that
|
|
|
|
supports Python from
|
|
|
|
\l{ftp://ftp.qt.nokia.com/misc/gdb/7.2/gdb72_mac_platform.tar.bz2}.
|
|
|
|
To use FSF GDB on Mac OS, you must sign it and add it to the \QC
|
2012-09-03 17:50:37 +02:00
|
|
|
\l{glossary-buildandrun-kit}{kits}. For more information, see
|
2012-05-29 14:02:17 +02:00
|
|
|
\l{Setting up FSF GDB for Mac OS}.
|
|
|
|
|
|
|
|
\note The Mac OS X Snow Leopard (10.6) has a bug that might cause the
|
|
|
|
application to crash. For a workaround, see:
|
|
|
|
\l{https://bugreports.qt-project.org/browse/QTBUG-4962}{QTBUG-4962}.
|
|
|
|
|
|
|
|
\endtable
|
|
|
|
|
|
|
|
\section1 Setting the Symbol Server in Windows
|
|
|
|
|
|
|
|
To obtain debugging information for the operating system libraries for
|
|
|
|
debugging Windows applications, add the Symbol Server provided
|
|
|
|
by Microsoft to the symbol search path of the debugger:
|
|
|
|
|
|
|
|
\list 1
|
|
|
|
|
|
|
|
\o Select \gui Tools > \gui Options > \gui Debugger > \gui CDB.
|
|
|
|
|
|
|
|
\o In the \gui {Symbol paths} field, open the \gui Insert menu
|
|
|
|
and select \gui{Symbol Server}.
|
|
|
|
|
|
|
|
\o Select a directory where you want to store the cached information
|
|
|
|
and click \gui OK.
|
|
|
|
|
|
|
|
Use a subfolder in a temporary directory, such as
|
|
|
|
\c {C:\temp\symbolcache}.
|
|
|
|
|
|
|
|
\endlist
|
|
|
|
|
|
|
|
\note Populating the cache might take a long time on a slow network
|
|
|
|
connection.
|
|
|
|
|
|
|
|
\note The first time you start debugging by using the Debugging tools for
|
|
|
|
Windows, \QC prompts you to add the Symbol Server.
|
|
|
|
|
|
|
|
\section1 Setting up FSF GDB for Mac OS
|
|
|
|
|
2012-09-03 17:50:37 +02:00
|
|
|
To use FSF GDB on Mac OS, you must sign it and add it to the \QC
|
|
|
|
\l{glossary-buildandrun-kit}{kits}.
|
2012-05-29 14:02:17 +02:00
|
|
|
|
|
|
|
\list 1
|
|
|
|
|
|
|
|
\o To create a key for signing FSF GDB, select \gui {Keychain Access >
|
|
|
|
Certificate Assistant > Create a Certificate}:
|
|
|
|
|
|
|
|
\list 1
|
|
|
|
|
|
|
|
\o In the \gui {Name} field, input \gui {fsfgdb} to replace
|
|
|
|
the existing content.
|
|
|
|
|
|
|
|
\o In the \gui {Certificate Type} field, select
|
|
|
|
\gui {Code Signing}.
|
|
|
|
|
|
|
|
\o Select the \gui {Let me override defaults} check box.
|
|
|
|
|
|
|
|
\o Select \gui Continue, and follow the instructions of the
|
|
|
|
wizard (use the default settings), until the \gui {Specify a
|
|
|
|
Location For The Certificate} dialog opens.
|
|
|
|
|
|
|
|
\o In the \gui Keychain field, select \gui System.
|
|
|
|
|
|
|
|
\o Select \gui {Keychain Access > System}, and locate the
|
|
|
|
certificate.
|
|
|
|
|
|
|
|
\o Double click the certificate to view certificate information.
|
|
|
|
|
|
|
|
\o In the \gui Trust section, select \gui {Always Trust} in the
|
|
|
|
\gui {When using this certificate} field, and then close
|
|
|
|
the dialog.
|
|
|
|
|
|
|
|
\endlist
|
|
|
|
|
|
|
|
\o To sign the binary, enter the following command in the terminal:
|
|
|
|
|
|
|
|
\code
|
|
|
|
codesign -f -s "fsfgdb" $INSTALL_LOCATION/fsfgdb
|
|
|
|
\endcode
|
|
|
|
|
|
|
|
\o In \QC, select \gui {Qt Creator > Preferences > Build & Run >
|
2012-09-03 17:50:37 +02:00
|
|
|
Kits} > \gui Add to create a kit that uses FSF GDB.
|
2012-05-29 14:02:17 +02:00
|
|
|
|
|
|
|
\o In the \gui Debugger field, specify the path to FSF GDB
|
|
|
|
(\c $HOME/gdb72/bin/fsfgdb, but with an explicit value for
|
|
|
|
\c $HOME).
|
|
|
|
|
2012-09-03 17:50:37 +02:00
|
|
|
\o To use the debugger, add the kit in the \gui {Build Settings}
|
2012-08-27 11:14:15 +02:00
|
|
|
of the project.
|
2012-05-29 14:02:17 +02:00
|
|
|
|
|
|
|
\endlist
|
|
|
|
|
|
|
|
*/
|