程序员助手——调试(C语言为例)

目录

前言

1.bug是什么

 2.为什么要调试,调试的重要性

       2.1 什么是调试

       2.2 调试的目的

       2.3 调试的步骤

       2.4 Debug和Release的不同

 3.Window环境下调试简介

      3.1调试准备

      3.2 快捷键学习

      3.3  调试时所要查看的对象

           3.3.1 查看临时变量的值

           3.3.2 查看内存信息

           3.3.3 查看调用堆栈

           3.3.4 查看汇编信息

 4. 敢于实践,勤于思考,多打多练

 5. 何为好的代码   

    5.1 如何写出好代码

 6.一名优秀程序员的基本素养

  7. 编译常见的错误

 8.尾声


前言

调试”通常指的是对系统、设备、程序等进行检查和调整,以确保其正常运行或达到最佳性能。在软件开发中,调试是一个重要的环节。

1.bug是什么

Bug一词的原意是“昆虫”或“虫子”;而在电脑系统或程序中隐藏着的一些未被发现的缺陷或问题,人们也叫它“bug”。

在早期的电子设备中,真的有昆虫(如蛾子)进入到设备内部,导致设备出现故障。当时的人们就用“bug”来形容这些故障。

 2.为什么要调试,调试的重要性

2.1 什么是调试

调试:调试是指在系统、设备、程序等的开发或运行过程中,发现并解决存在的问题或错误,以确保其正常运行或达到预期的性能。它需要技术知识、经验和耐心,调试人员需要具备良好的问题解决能力和系统分析能力。

2.2 调试的目的

1. 提高可靠性:确保系统或程序在各种情况下都能稳定运行。
2. 优化性能:提升系统或程序的效率和响应速度。
3. 满足规格要求:使其符合既定的功能和性能标准。

2.3 调试的步骤

1. 错误检测:发现程序中的错误、缺陷或异常情况。
2. 定位问题:确定错误出现的位置和原因。
3. 修复错误:采取适当的措施来解决问题。
4. 测试验证:确保修复后的程序能正常工作。

 2.4 Debug和Release的不同

在软件开发中,"Debug"(调试)和 "Release"(发布)是两个重要的阶段。

Debug 阶段是开发过程中的一部分,主要关注于发现和修复软件中的错误和问题。在这个阶段,开发人员会使用各种工具和技术来调试代码。

Release 阶段则是软件准备发布给最终用户的阶段。在这个阶段,软件通常经过了充分的测试和优化,以确保其质量和性能。

与 Debug 版本相比,Release 版本具有以下特点:
 1. 通常进行了优化,以提高性能和减小文件大小。
2. 去除了调试信息和辅助代码,使软件更简洁。
3. 更注重稳定性和可靠性。
 
在软件开发过程中,从 Debug 阶段过渡到 Release 阶段需要进行一系列的工作,例如:
1. 完成所有的测试和修复。
2. 优化代码以提高性能。
3. 整理和准备发布所需的文档和资源。
 

总之,Debug 阶段用于发现和解决问题,而 Release 阶段则是为了向用户提供高质量、稳定可靠的软件产品

那么在实际编程当中 Debug 和 Release 具体有哪些区别呢?

下面我们看下面一段代码:

#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版本下程序运行如下:

Release版本下程序运行如下:

不难发现,同一组代码在Debug版本上打印死循环hehe而在Release版本上打印了13个hehe。其实这就是版本优化导致的。

 3.Window环境下调试简介

 3.1调试准备

注意:在Debug版本下才能对代码进行调试!

 3.2 快捷键学习

  3.3  调试时所要查看的对象

  3.3.1 查看临时变量的值

  *  在调试开始之后,用于观察存放变量的值变化。

3.3.2 查看内存信息

    *  在调试开始之后,用于查看内存信息。

  3.3.3 查看调用堆栈

 *  通过调用堆栈,可以清晰的反应函数的调用关系以及当前调用所在的位置!

3.3.4 查看汇编信息

 4. 敢于实践,勤于思考,多打多练

1.熟悉并掌握调试技巧。

2.初学者80%的时间在写代码,剩下20%在调试。而真正一名程序员则时80%在调试,剩下20%在写代码。

3.对于编程工具页面不要怕错,大不了删掉重新下载。一定要多点多了解,知道哪个键是做什么的有什么样的功能。

4.时刻保持一颗积极向上的心与良好的学习态度。

5. 何为好的代码   

 好代码是在可读性、可维护性、正确性、效率等多方面达到平衡的代码,既能满足当前的需求,又能为未来的发展提供良好的基础。

  5.1 如何写出好代码

1. 规划设计:在开始写代码之前,先进行规划和设计,确保代码结构合理。
2. 保持简洁:避免不必要的复杂性,使代码易于理解和维护。
3. 命名规范:使用具有描述性和一致性的变量、函数和类名。
4. 注释详细:为关键部分添加注释,帮助他人理解代码的目的和功能。
5. 代码格式化:遵循一致的缩进和编码风格。
6. 处理错误:充分考虑可能出现的错误情况,并进行适当的错误处理。
7. 进行测试:编写单元测试,确保代码的正确性和稳定性。
8. 优化性能:在必要时对代码进行性能优化。
9. 代码重构:定期审查和重构代码,提高代码质量。
10. 学习借鉴:阅读优秀的代码,学习他人的经验和最佳实践。
11. 团队协作:与团队成员交流,分享代码和经验。

12. 持续学习:不断提升自己的编程技能和知识。

 6.一名优秀程序员的基本素养

1. 扎实的编程技能:熟练掌握至少一种编程语言。
2. 问题解决能力:能够快速分析和解决问题。
3. 逻辑思维:具备严谨的逻辑思维能力。
4. 学习能力:不断学习新的知识和技术。
5. 注重细节:在代码中关注细节,避免错误。
6. 代码可读性:编写清晰易懂的代码。
7. 调试能力:能够有效地调试和排查问题。
8. 团队协作能力:与团队成员良好合作。
9. 时间管理能力:合理安排工作时间。
10. 压力承受能力:能应对工作中的压力。
11. 创新能力:提出新颖的解决方案。
12. 对新技术的热情:积极关注并尝试新技术。
13. 沟通能力:与其他部门有效沟通。
14. 责任心:对自己的工作负责。
15. 耐心和毅力:在解决复杂问题时保持耐心

   7. 编译常见的错误

    7.1 编译型错误

直接双击错误信息,针对问题进行解决,相对简单。

    7.2 链接型错误

需寻找错误信息,一般为码中找到错误信息中的标识符,然后定位问题所在。通常表现为标识符名不存在或者拼写错误。

    7.3 运行时的错误  

自己很难发现问题通常借助调试,逐步定位。

 8.尾声

平时最为主要的还是要靠自己的勤加练习,多加思考。长此以往才能真正的做到熟能生巧!

本篇文章就结束了,如果有帮助到你,请一键三连!感谢支持!!!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值