调试入门: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限定符
- 养成良好的编码风格
- 添加必要的注释
- 避免常见的编码陷阱
记住,真相永远只有一个!
热门推荐
花生怎么种植,2-3月份播种为佳
环境污染的原因和后果:完整分析
如何进行安全且合规的美元兑换操作?这种兑换操作的汇率影响因素有哪些?
上海罗店古镇游玩攻略:非遗民俗玩不停,花神故里深度游
发挥绩效管理的核心价值:提升组织绩效与员工发展
离职沟通的黄金法则:如何体面告别并留下职场好人脉?
这15种水果,劝你不要直接塞进冰箱!否则……
汉灵帝:功过参半的复杂帝王
果冻鼻涕大揭秘:原因,饮食调理与注意事项
2025年春运收官 兰州铁路局春运发送旅客首次超千万
市面上手动挡汽车哪个品牌最好开?三个合资品牌表现优异
10款经典数学游戏推荐:在玩乐中提升数学能力
换热器设计与开发仿真解决方案
如何理解投资中的触底反弹现象?这种反弹现象如何进行分析和把握?
贴隐形车衣9大施工细节-隐形车衣
两广的区划调整:1965年,广东省5个县为何被划入了广西?
Excel中输入数字会改变怎么办?
车后备箱开,上路违法?任通行ETC好用揭秘
秘制酱牛肉传统"三泡三酱"制作法
食欲不振?5个开胃妙招让你重拾美食乐趣!
如何实施16949质量管理体系标准?
6个常见错误,避免让满墙电视柜毁了你的家居美观
英伟达 Orin Y 芯片悄然布局,搅动智驾芯片市场风云
如何出售继承的房产?出售继承房产需要注意哪些事项?
罗汉果功效与禁忌 | 罗汉果水煲多久?罗汉果水做法、食谱、如何挑选?
卡式炉爆炸常因"炉小锅大"
如何选择合适的SEO关键词?
币圈TGE全面解析:解锁加密货币领域的融资新玩法
如何有效地进行违建问题的举报工作
苹果酸奶减肥法食谱及原理详解