设置断点
您可以将断点关联到:
- 源代码文件和行号
- 函数
- 地址
- 抛出和捕获异常
- 进程的执行和分叉
- 执行某些系统调用
- 应用程序运行时特定地址处内存块的变化
- 发出 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.