支持的调试器
您可以使用Qt Creator 调试编译后的代码。在大多数支持的平台上,您可以使用 GNU 符号调试器 (GDB)。在 Microsoft Windows 上,使用 Microsoft 工具链时,需要使用 Microsoft Console Debugger (CDB)。在 macOS 和 Linux 上,可以使用 LLDB 调试器。
在所有支持的平台上,可以使用 PDB 调试 Python 源代码。
注意: 您需要一个支持 Python 脚本的调试器版本。
下表总结了调试 C++ 代码的支持情况:
平台 | 编译器 | 调试器 |
---|---|---|
Linux | GCC、ICC | GDB、LLDB |
Unix | GCC、ICC | GDB |
MacOS | GCC、Clang | LLDB |
Windows/MinGW | GCC | GDB |
Windows/MSVC | Microsoft Visual C++ 编译器 | Windows/CDB 调试工具 |
Qt Creator 会自动从计算机上找到的调试器中为每个工具包选择合适的调试器。如果计算机上未安装调试器,或者 不支持已安装的版本,则自动设置会失败。Qt Creator
GDB 版本
使用带有 Python 脚本扩展和 Python 3.7 或更高版本的 GDB 7.5 或更高版本。
使用 GDB 和 GDB 服务器进行远程调试时,目标设备上 GDB 服务器的最低支持版本为 7.0。
在 Windows 上,请使用与 Qt 软件包捆绑的支持 Python 的 GDB 版本或 MinGW 的最新版本。在大多数 Linux 发行版上,系统自带的 GDB 编译包已经足够。
您也可以按照"构建 GDB "中的说明,构建自己的 GDB。
macOS 上随 Xcode 提供的 GDB 构建已不再受支持。
Windows 调试工具
Qt Creator 支持 Qt 所支持平台的所有 CDB 版本。
要使用 CDB 调试器,请在安装Qt Creator 时安装Windows版调试工具,方法是使用Qt Online Installer (在Qt >Tools > Qt Creator) 或使用独立的Qt Creator 安装包安装。
32 位 CDB 版本只能调试 32 位可执行文件,而 64 位版本可以调试 64 位和 32 位可执行文件。不过,使用 64 位调试器中断 32 位可执行文件会导致显示 WOW64 仿真器 32 位仿真层的堆栈跟踪。
Qt Creator 通过加载 扩展库来扩展命令行调试器。该库必须存在于 和 文件夹中。要将其安装到此处,请在安装 时选择qtcreatorcdbext.dll
libs\qtcreatorcdbext64
libs\qtcreatorcdbext32
Qt Creator CDB Debugger Support安装Qt Creator 。
使用 Microsoft Visual C++ 编译器手动构建Qt Creator 时,构建过程会检查"%ProgramFiles%\Debugging Tools for Windows"
中的所需文件。
MacOS 调试工具
Qt 二进制发行版既有调试库,也有发布库。不过,即使你的应用程序编译为调试程序,你也必须明确告诉运行时链接器你想使用调试库,因为release是默认库。
如果在Qt Creator 中使用基于 qmake 的项目,可以在Projects 模式下的运行配置中设置一个标志。在运行配置中,选择Use debug version of frameworks 。
有关 macOS 调试的更多详细信息,请参阅:Mac OS X 调试魔法。
LLDB 版本
LLDB 调试器的功能与 GDB 调试器类似。LLDB 是 macOS 上 Xcode 中用于桌面 C++ 的默认调试器。LLDB 通常与 Clang 编译器一起使用(尽管也可以与 GCC 一起使用)。
在 macOS 上,您可以使用随 Xcode 提供的 LLDB 版本,也可以从源代码构建。最低支持版本是 LLDB 320.4。您需要使用支持 Python 的 LLDB 版本。
我们建议使用随最新 Xcode 提供的 LLDB 版本。
在 Linux 上,最低支持版本为 LLDB 3.8。
PDB 版本
PDB是 Python 应用程序的源代码调试器。您可以用它来调试具有pyproject.toml配置文件的项目。
安装 Python 并在Projects >Run 中设置要使用的解释器。
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.