Supported Native Debuggers

Qt Creator supports native debuggers for debugging 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:

PlatformCompilerNative Debugger
LinuxGCC, ICCGDB, LLDB
UnixGCC, ICCGDB
macOSGCC, ClangLLDB
Windows/MinGWGCCGDB
Windows/MSVCMicrosoft Visual C++ CompilerDebugging Tools for Windows/CDB

The debugger plugin automatically selects a suitable native debugger for each kit from the ones found on the computer. The automatic setup fails if the native 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 native 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.

{Run settings for a Python project}

See also How To: Debug, Debugging, Debuggers, and Debugger.

© 2024 The Qt Company Ltd. 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.