Supported Debuggers
You can use Qt Creator to debug compiled code. On most supported platforms, you can use the GNU Symbolic Debugger (GDB). On Microsoft Windows, when using the Microsoft toolchain, you need the Microsoft Console Debugger (CDB). On macOS and Linux, you can use the LLDB debugger.
On all supported platforms, you can use PDB to debug Python source code.
Note: You need a debugger version built with Python scripting support.
The following table summarizes the support for debugging C++ code:
Platform | Compiler | Debugger |
---|---|---|
Linux | GCC, ICC | GDB, LLDB |
Unix | GCC, ICC | GDB |
macOS | GCC, Clang | LLDB |
Windows/MinGW | GCC | GDB |
Windows/MSVC | Microsoft Visual C++ Compiler | Debugging Tools for Windows/CDB |
Qt Creator automatically selects a suitable debugger for each kit from the ones found on the computer. The automatic setup fails if the debugger is not installed on the computer or if Qt Creator does not support the installed version.
GDB Versions
Use GDB 7.5, or later, with the Python scripting extension and Python version 3.5, or later.
For remote debugging using GDB and GDB server, the minimum supported version of GDB server on the target device is 7.0.
On Windows, use the Python-enabled GDB version that is bundled with the Qt package or comes with recent versions of MinGW. On most Linux distributions, the GDB builds shipped with the system are sufficient.
You can also build your own GDB, as instructed in Building GDB.
Builds of GDB shipped with Xcode on macOS are no longer supported.
Debugging Tools for Windows
Qt Creator supports all versions of CDB targeting platforms that Qt supports.
To use the CDB debugger, install the Debugging Tools for Windows when you install Qt Creator either by using Qt Online Installer (in Qt > Tools > Qt Creator) or by using the stand-alone Qt Creator installation packages.
The 32-bit CDB version can only debug 32-bit executables, whereas the 64-bit version can debug both 64-bit and 32-bit executables. However, interrupting a 32-bit executable with a 64-bit debugger can result in a stack trace of the WOW64 emulator 32-bit emulation layer being displayed.
Qt Creator extends the command-line debugger by loading the qtcreatorcdbext.dll
extension library into it. The library must be available in the libs\qtcreatorcdbext64
and libs\qtcreatorcdbext32
folder. To install it there, select Qt Creator CDB Debugger Support when you install Qt Creator.
When manually building Qt Creator using the Microsoft Visual C++ Compiler, the build process checks for the required files in "%ProgramFiles%\Debugging Tools for Windows"
.
Debugging Tools for macOS
The Qt binary distribution has both debug and release variants of the libraries. However, you have to explicitly tell the runtime linker that you want to use the debug libraries even if your application is compiled as debug because release is the default library.
If you use a qmake based project in Qt Creator, you can set a flag in your run configuration, in Projects mode. In the run configuration, select Use debug version of frameworks.
For more detailed information about debugging on macOS, see: Mac OS X Debugging Magic.
LLDB Versions
The LLDB debugger has similar functionality to the GDB debugger. LLDB is the default debugger in Xcode on macOS for C++ on the desktop. LLDB is typically used with the Clang compiler (even though you can use it with GCC, too).
On macOS you can use the LLDB version delivered with Xcode or build from source. The minimum supported version is LLDB 320.4. You need a LLDB version built with Python support.
We recommend using the LLDB version that is delivered with the latest Xcode.
On Linux, the minimum supported version is LLDB 3.8.
PDB Versions
PDB is a source code debugger for Python applications. You can use it to debug projects that have a .pyproject configuration file.
Install Python and set the interpreter to use in Projects > Run.
See also How To: Debug, Debugging, Debuggers, Debugger, and Kits.
Copyright © The Qt Company Ltd. and other contributors. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.