调试Qt Quick应用程序
调试器可以在应用程序运行时或崩溃时显示应用程序内部发生的情况。调试器可以通过以下功能帮助您在应用程序中找到错误
- 使用指定其行为的参数启动应用程序。
- 当条件满足时停止应用程序。
- 检查应用程序停止时发生的情况。
- 当您修复错误时更改应用程序,并继续找到下一个错误。
QML调试引擎
一个QML调试引擎扩展了Visual Studio调试器的功能,该功能是QML调试基础设施的一部分,这是一个Qt QML模块,通过TCP端口为调试、检查和应用程序分析提供了服务。调试引擎实现了Active Debugging 7 (AD7)扩展框架为Visual Studio调试器提供的接口。
设置断点
如果一个Qt项目有QML资源文件,则启动调试会话(例如,通过按F5)将启动本地应用程序并连接到该应用程序的QML调试基础设施。您可以在Visual Studio调试器的进程窗口中看到这一点。
进程窗口列出了两个进程:一个本地进程和一个QML进程。本地进程对应于为C++调试会话创建的实际物理进程。QML进程不对应于机器上运行的任何物理进程,而是在本地进程中表示与QML调试运行时的连接。
本地进程和QML进程的存在允许在C++或QML代码中设置断点。Visual Studio调试器将断点请求转发到相应的调试引擎。在QML代码中的填充圆形断点标记表示有效的断点。这意味着已向该文件位置发送断点请求,并得到它的确认。
检查数据
当遇到断点时,Visual Studio 会显示调用堆栈的当前状态。与其他混合多种语言(如 .NET 和原生调试)的调试应用场景不同,QML 调试引擎不提供真正的混合模式调试。它与原生调试引擎并发运行,并且不会被 Visual Studio 调试器视为与原生进程相关。因此,尽管您可以在同一个调试会话中同时调试 C++ 和 QML,但当 QML 断点遇到时,显示的堆栈只包括 QML 函数调用。这些调用的 C++ 上下文将不可用。
与原生调试类似,在断点状态下,您可以查看和更改当前活动调用堆栈帧中的局部变量值,还可以为任何变量或表达式创建监视器。在立即窗口中,可以计算当前堆栈帧上下文中的任何表达式。
将鼠标移至 QML 表达式上,以显示即时监视窗口。在该当前上下文中查看和更改该表达式的值。
另请参阅 教程:Qt Quick 调试,交叉编译,调试应用程序,在 Linux 上调试,以及 启用 QML 调试。
©2024 The Qt Company Ltd. 本文件中的文档贡献的版权属于各自的所有者。本文件提供的文档根据自由软件基金会发布的《GNU 自由文档许可协议》第 1.3 版许可。Qt 及相关标志为芬兰的 Qt Company Ltd. 和/或全球其他国家的商标。所有其他商标均为其各自所有者的财产。