目录
一 设置断点
二 调试窗口信息
2.1 默认窗口
2.2 详细窗口属性
三 调试方法和技巧
一 设置断点
在QtCreator中我们有两种方式添加断点。
- 用鼠标直接点击代码编辑窗口中的某一行
- 按下F9添加/取消断点(操作的是当前鼠标光标所在的代码行)
二 调试窗口信息
2.1 默认窗口
- 这里列出几个默认的窗口
- 红色圆点表示断点,黄色箭头表示当前程序运行位置。
- stack: 堆栈表示当前函数之间的调用关系,比如位于哪个函数体中。
- Locals: 本地Local区域:当前堆栈中的属性值
- Expressions:监视窗口:动态监视某个变量的值,即使它们不在当前作用域内。
- Beakpoints : 断点信息窗口
2.2 详细窗口属性
红色加粗窗口是重点关注也是常用的窗口。
- stack: 显示当前的函数调用堆栈,帮助你了解程序执行的路径,以及它是如何到达当前执行点的。你可以点击堆栈中的任何一行来跳转到相应的源代码位置。
- Beakpoints : 列出了程序中设置的所有断点,允许你管理(添加、删除、启用/禁用)断点,并可以为断点设置条件,比如只有当某个变量满足特定条件时才触发断点。
- Threads:列出程序中的所有线程,并允许你选择要调试的线程。
- Modules: 当前调用的模块信息,其实可以理解为动态库/静态库的信息(比如模块名称、路径、基地址、大小)
- Source Files:当前包含的所有源码文件。
- Locals: 当前作用域中所有局部变量以及类成员属性及其对应的值。这里值得注意的是,它并不会显示当前断点处程序上下文的所有变量属性(上下文: 当前程序运行处的所有状态信息,包括局部变量,外部可调用的全局变量,执行线程,调用堆栈等)。
- Expressions:监视窗口:动态监视某个变量的值,即使它们不在当前作用域内。允许你监视特定表达式或变量的值。
- Registers: 对于底层调试,显示CPU寄存器的当前值,这对于理解程序的低级执行状态很有用,尤其是在进行硬件相关的调试时。(这里要注意如果打开了这个窗口但是GDB配置有误,那么调试就会比终止提示TheThe GDB process terminated)
- Debugger Log: 调试日志。
- Editor(代码编辑器):当前正在编辑的窗口 比如.cpp
- Automatically Hide View Title Bars: 是否隐藏掉这些调试窗口的标题栏
三 调试方法和技巧
方法:
F5 | 开始断点调试 |
F9 | 增加/删除断点 |
F10 | 单步调试 遇到函数不会进入 |
F11 | 单步进入 会进入函数,任何函数都会单步进入。 |
shift+F11 | 单步退出 退出当前函数 |
技巧:
- 当F5启动断点调试后,继续使用F5直接跳到下一个断点处
- 可以使用鼠标拖动当前代码编辑器中的黄色箭头来移动当前的调试位置。
- 可以用鼠标右键框选中变量,然后用左键拖动到监视器窗口中来监视该变量。