调试入门:5大步骤+2个实战案例,轻松掌握程序除错技巧
创作时间:
2025-01-21 21:54:14
作者:
@小白创作中心
调试入门:5大步骤+2个实战案例,轻松掌握程序除错技巧
调试是程序员必备的基本功之一。本文将从调试的基本概念出发,详细讲解调试的步骤、Debug与Release版本的区别、断点的使用方法、监视窗口的运用,并通过两个实例演示如何发现和解决代码中的错误。无论你是编程初学者还是有一定经验的开发者,都能从中学到实用的调试技巧。
什么是调试?
调试(英语:Debugging / Debug),又称除错,是发现和减少计算机程序或电子仪器设备中程序错误的一个过程。
调试的步骤
- 发现程序错误的存在
- 以隔离、消除等方式对错误进行定位
- 确定错误产生的原因
- 提出纠正错误的解决办法
- 对程序错误予以改正,重新测试
Debug与Release版本的区别
Debug版本包含调试信息,不作任何优化,便于程序员调试程序。例如,以下代码在Debug版本下的运行结果:
#include<iostream>
using namespace std;
int main()
{
int arr[10];
for (int i = 0; i < 10; i++)
{
arr[i] = i+1;
}
for (int i = 0; i < 10; i++)
{
cout << arr[i];
}
return 0;
}
点击调试后,在对应的文件中会创建debug文件,里面包含.exe的可执行文件:
Release版本则对代码进行了优化,调试信息较少。下图是Release版本的调试界面:
断点的使用与快捷键
断点可以在程序的任意位置设置,使得程序在指定位置停止执行,便于逐步检查代码。常用的调试快捷键有:
- F5:启动调试,跳到下一个断点
- F9:创建或取消断点
- F10:逐过程执行
- F11:逐语句执行
- CTRL + F5:开始执行不调试
监视窗口的使用
通过以下步骤调出监视窗口:
在程序运行之后按以下顺序点击
运用监视可以看到数据具体的变化
当然运用监视还可以看到内存窗口
当前存放的整形,因此将列数设置为4,因为是16进制,两个零代表一个字节,一行就是4个字节也就是一个整形数据
当然还有其他自动窗口,局部变量等就不逐一介绍了
实战演练
实例一:计算阶乘和
实现代码:求 1!+2!+3! …+ n! ;不考虑溢出。
int main()
{
int i = 0;
int sum = 0;//保存最终结果
int n = 0;
int ret = 1;//保存n的阶乘
scanf("%d", &n);
for(i=1; i<=n; i++)
{
int j = 0;
for(j=1; j<=i; j++)
{
ret *= j;
}
sum += ret;
}
printf("%d\n", sum);
return 0;
}
通过监视窗口,可以发现ret
在每次内循环结束后没有恢复初始值。
实例二:分析死循环原因
研究程序死循环的原因。
#include <stdio.h>
int main()
{
int i = 0;
int arr[10] = {0};
for(i=0; i<=12; i++)
{
arr[i] = 0;
printf("hehe\n");
}
return 0;
}
在Debug环境中,会导致修改了i的值为0
出现如下图所示导致死循环
arr[10]与arr[11]是抽查位,但程序未结束,编译器无法进行抽查
抽查位的介绍见C++入门中空间越界小知识
在Release环境中系统做了优化就不出现死循环而是编译词报错
总结
调试需要多动手实践才能进步。除了掌握基本的调试技巧外,还应注意以下几点:
- 使用assert进行断言检查
- 尽量使用const限定符
- 养成良好的编码风格
- 添加必要的注释
- 避免常见的编码陷阱
记住,真相永远只有一个!
热门推荐
中医调理脱发白发怎么调理
头发变细怎么办?四大饮食攻略强健发根
最新研究:脱发与这个因素有关!且可能每天都在“薅”......
DOUDOU乐队首登东莞草莓音乐节,双胞胎姐妹演绎独特音乐魅力
阿胶虽好,不可乱吃——进补阿胶的注意事项
阿胶口服液的功效有哪些
《恐怖奶奶2》七大惊悚结局揭秘
2024乡镇档案管理:数字化提速,服务增效15%
企业档案如何管?新规明确全宗管理与备份要求
三菱电机空调故障代码的解释大全
AI绘画技术引领艺术革命,三大应用重塑创作流程
赵女士的体检结果:弱碱性水真有那么神奇吗?
三菱中央空调故障排查与维修指南
三菱中央空调常见故障及维修指南
中央空调怎么正确使用
AI绘画:创作门槛降低,艺术风格走向大众化
从祭祀到教育:祠堂的多重文化功能
弱碱性水真的能调节酸碱平衡吗?
喝弱碱性水真的能养生吗?
春节送礼全攻略:不同地区习俗与精选礼品推荐
道教正一派的发源地,究竟在哪里?看完涨知识了!
澳门春节接待游客超百万,餐饮酒店手信业全面复苏
如何有效合并电脑磁盘分区以提升存储空间利用率
春运期间,沈阳铁路信号工深夜冒寒检修38组道岔
煤矿运输安全:巷道运输与人员行走防护要点
《恐怖奶奶2》:最新游戏机制全攻略
《恐怖奶奶2》PK其他恐怖游戏,谁更吓人?
《恐怖奶奶2》解谜技巧大揭秘
卡波姆的作用与功效美容养颜
超紧凑的光学设计增强了虚拟和增强现实设备相机