设置断点
您可以将断点与以下内容关联起来
- 源代码文件和行
- 函数
- 地址
- 抛出和捕获异常
- 执行和分叉进程
- 执行某些系统调用
- 应用程序运行时特定地址内存块的变化
- 发出 QML 信号
- 抛出 JavaScript 异常
除非您为断点指定了布尔条件,否则每次应用程序到达断点位置时,断点都会中断应用程序。应用程序每次通过断点时,断点都会对表达式进行评估,只有当条件评估结果为true
时,应用程序才会停止。
无人认领和有人认领的断点
断点有两种:unclaimed
和claimed
。无人认领的断点代表中断调试程序的任务,稍后将控制权交给你。它有两种状态:pending
和implanted
。
无人认领的断点作为会话的一部分存储,与应用程序是否正在调试无关。当它们指向代码中的某个位置时,会在Breakpoint Preset 视图和编辑器中使用 (Unclaimed Breakpoint) 图标列出。
当调试器启动时,调试后台会从未认领的断点集中识别出可能被调试程序处理的断点,并将其认领为自己专用。已申请的断点会在运行调试器的Breakpoints 视图中列出。该视图仅在调试器运行时存在。
当调试器申请断点时,未申请的断点会从Breakpoint Preset 视图中消失,在Breakpoints 视图中显示为待定断点。
调试器会在不同时间尝试将待定断点植入调试进程。成功的植入可能会创建一个或多个植入断点,每个断点都与调试断点中的实际地址相关联。例如,植入还可能将编辑器中的断点标记从空行移到实际代码生成的下一行。植入的断点图标不会叠加沙漏。
当调试器结束时,其已申请的断点(包括待处理断点和已植入断点)将返回到未申请状态,并重新出现在Breakpoint Preset 视图中。
在调试程序的执行过程中,当植入的断点被击中时,控制权将交还给你。然后,您可以检查被中断应用程序的状态,或继续逐行或连续执行。
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.