返回 课程

模板 信奥AC之路(第一级)

0% 完成
0/0 步骤
  1. 第一课 开发环境与基础输出
    4 主题|小节
  2. 第二课 算数运算符
    6 主题|小节
  3. 第三课 输入与运算
    3 主题|小节
  4. 第四课 数值操作
    4 主题|小节
  5. 第五课 表达式与运算符
    3 主题|小节
  6. 第六课 三目运算与双分支(缺导语+本课目标)
    2 主题|小节
  7. 第七课 多分支结构(缺导语+本课目标)
    1 主题|小节
  8. 第八课 多if语句
    1 主题|小节
  9. 第九课 三种分支结构的比较
    1 主题|小节
  10. 第十课 巩固学习分支结构
    1 主题|小节
  11. 第十一课 switch与复合语句
    3 主题|小节
  12. 第十二课 while循环
    2 主题|小节
  13. 第十三课 while循环的简单条件输出
    1 主题|小节
  14. 第十四课 while循环的输入序列处理
    1 主题|小节
  15. 第十五课 while循环的复杂条件输出
    2 主题|小节
  16. 第十六课 while循环与数据统计
    1 主题|小节
  17. 第十七课 for循环结构
    3 主题|小节
  18. 第十八课 for循环的输入序列处理)
    1 主题|小节
  19. 第十九课 深入探索for循环
    2 主题|小节
  20. 第二十课 三种循环的对比
    2 主题|小节
  21. 第二十一课 程序调试(一)
    3 主题|小节
  22. 第二十二课 调试工具的使用
    2 主题|小节
  23. 第二十三课 综合复习
    2 主题|小节
  24. 第二十四课 学习评估
    1 主题|小节
课 21, 主题|小节 2
进行中

21.2 调试方法

2025年4月20日
课 进展
0% 完成

### 21.2.1 输出调试技术

“小朋友们,做数学题时,我们会在草稿纸上写下计算步骤,对吗?” 我拿出一张详细的演算纸,”在程序中,我们也可以用’cout’语句来记录程序的每一步!”

[图片:输出调试对比图]

🔬 **实验六:使用输出调试**

“`cpp
#include
using namespace std;

int main() {
cout << "=== 程序开始执行 ===" << endl; int number = 5; cout << "第1步:设置初始值 number = " << number << endl; number = number + 2; cout << "第2步:加2后 number = " << number << endl; number = number * 3; cout << "第3步:乘3后 number = " << number << endl; cout << "=== 最终结果:" << number << " ===" << endl; return 0; } ``` > 💡 输出调试的技巧:
>
> 1. 在重要步骤前后添加输出
> 2. 使用醒目的标记(如===)
> 3. 给每一步编号
> 4. 显示变量的变化过程

### 21.2.2 单步调试方法

“现在我们要学一个非常神奇的功能 – 单步调试!” 我兴奋地说道,”就像看慢动作回放一样,我们可以让程序慢慢地、一行一行地运行!不过在开始之前,我们需要做一些重要的准备工作。”

#### 准备工作:配置调试环境

1. **设置编译器模式**
– 打开”工具” → “编译选项”
– 在”编译器”标签页中
– 将”编译器配置”设置为”Debug”模式
– 点击”确定”保存设置

2. **启用调试信息**
– 继续在”编译选项”中
– 选择”代码生成/优化”标签页
– 找到”连接器”部分
– 将”产生调试信息”从”NO”改为”YES”
– 点击”确定”保存设置

3. **检查工作目录**
– 确保你的程序保存在一个不含中文路径的文件夹中
– 路径中不要有空格
– 建议路径:D:\Programming\Debug_Test

🔬 **实验七:跟我一起调试**

首先,让我们准备一段测试代码:

“`cpp
#include
using namespace std;

int main() {
int score = 0; // 第1行:设置初始分数

cout << "请输入你的分数:"; // 第2行:提示输入 cin >> score; // 第3行:等待输入

if(score >= 60) { // 第4行:判断分数
cout << "恭喜,及格了!" << endl; // 第5行 } else { cout << "继续加油!" << endl; // 第6行 } return 0; // 第7行:程序结束 } ``` #### 详细的调试步骤: 1. **保存并编译程序** - 按Ctrl+S保存程序 - 按F9编译程序 - 确保编译无错误(查看下方信息窗口) 2. **设置断点** - 将光标移动到第3行(`cin >> score;`)
– 点击行号左侧的灰色区域,或按F9
– 会出现一个红色圆点,这就是断点
– 也可以在第4行(if语句)设置断点

3. **启动调试**
– 点击工具栏上的”调试”按钮,或按F5
– 程序会运行到第一个断点处停止
– 注意观察以下变化:
* 当前行会高亮显示
* 下方会出现”调试”窗口
* “变量”窗口会显示所有变量的值

4. **使用调试窗口**
在调试窗口中,你会看到几个重要的面板:
– 局部变量:显示当前所有变量的值
– 监视:可以添加想要特别关注的变量
– 调用堆栈:显示程序的执行路径

5. **单步执行**
– 按F10执行当前行,移动到下一行
– 当看到`cin`语句时,在控制台窗口输入一个分数
– 继续按F10,观察程序如何根据输入走不同的分支

6. **观察变量变化**
– 在变量窗口中找到`score`变量
– 观察它的值如何随着程序执行而改变
– 可以右键点击变量添加到”监视”窗口

7. **使用监视窗口**
– 在”监视”窗口中右键选择”添加监视”
– 输入`score >= 60`
– 可以看到这个条件的真假值

8. **继续或结束调试**
– F5:继续运行到下一个断点
– Shift+F5:停止调试
– Ctrl+F5:重新启动程序

#### 常见问题解决:

1. **找不到调试按钮**
– 检查是否在”Debug”模式下
– 确认是否已启用调试信息
– 重启IDE可能会有帮助

2. **断点不起作用**
– 确保程序已保存并重新编译
– 检查调试信息是否已启用
– 尝试清除所有断点后重新设置

3. **无法查看变量值**
– 确认程序是否处于调试状态
– 检查变量是否在当前作用域
– 尝试重新编译程序

#### 调试小贴士:

1. 合理设置断点

– 在重要的数据输入点
– 在关键的判断语句前
– 在计算结果的地方

2. 善用监视窗口

– 关注关键变量的变化
– 添加条件表达式
– 实时观察程序状态

3. 掌握快捷键

“`
F5 – 开始/继续调试
F9 – 设置/取消断点
F10 – 单步执行(不进入函数)
F11 – 单步执行(进入函数)
Shift+F5 – 停止调试
“`