前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >调试及其重要性

调试及其重要性

作者头像
老齐
发布2021-05-20 10:27:45
1.9K0
发布2021-05-20 10:27:45
举报
文章被收录于专栏:老齐教室

软件在发布之前,应该没有错误,这样才能让用户满意。为了达到这个目的,在开发过程中,调试(debugging)是必不可少的——注意,调试不是测试,两者是有区别的。

什么是调试?

软件程序在开发过程中要经历大量的测试、更新、故障排除和维护,程序中有错误和缺陷,是正常现象,关键在于如何改正这些错误和缺陷。调试就是对软件进行错误修正的过程。

即识别、分析和消除错误。调试过程开始于软件无法正确执行之际,结束于解决问题并成功测试软件之时。调试过程是一项极其复杂和乏味的任务过程,因为在调试的所有阶段都需要解决错误。

为什么需要调试?

一旦开始写代码,调试过程就开始了。然后,当代码与其他编程单元结合形成软件产品时,调试将在后续的阶段中继续进行。调试有许多好处,例如:

  • 立即报告**错误状况。**这使我们更早地检测到错误,并使软件开发能顺利进行下去。
  • 它还提供关于数据结构的最大限度的有用信息及简单解释。
  • 调试帮助开发人员减少无用的和分散注意力的信息。
  • 通过调试,开发人员可以避免复杂的一次性测试代码,节省软件开发的时间和精力。

调试步骤

调试过程的主要步骤:

1. 识别错误(Identify the Error):错误识别可能会导致浪费开发时间。由用户报告的错误是很难解释的,有时我们收到的信息也具有误导性。调试是用来识别实际错误的的最佳方式。

2. 定位错误( Find the Error Location):准确地识别错误后,需要遍历代码以找到错误所在的确切位置。在这个阶段,你需要集中精力去找,而不是去理解它。

3. 分析错误(Analyze the Error):在第三步中,你需要从错误位置使用自下而上的方法并分析代码。这有助于理解错误。分析bug有两个主要目标:检查错误周围是否有其他错误,以及避免在修复中输入任何风险代码。

4. 验证分析(Prove the Analysis):一旦完成了对原始bug的分析,你需要找到应用程序上可能出现的更多错误。这一步涉及到在测试框架的帮助下为这些区域编写自动化测试。

5. Cover Lateral Damage(如果有网友对这个标题有好的翻译,请留言。多谢。):在这个阶段,你需要为将要更改的代码创建单元测试。现在,如果运行这些单元测试,它们都应该通过。

6. 修复与验证(Fix & Validate): 最后一个阶段是修复所有错误并运行所有测试脚本,以检查它们是否都通过。

调试策略

  • 必须要深入理解整个系统,这有助于开发者对调试的程序作出正确判断。
  • 对问题进行“回溯分析”,即从错误的位置开始向前跟踪所有代码,以确定故障代码的区域。你需要彻底研究整个区域,以找到错误的原因。
  • “前向分析”即在程序的不同位置打断点或打印语句来前向跟踪代码执行过程。重要的是关注获得错误区域的输出内容。
  • 必须已经积累的开发经验来检查类似的问题。这种方法的成功取决于开发者的专业知识。

调试工具

调试工具是用来测试和调试其他程序的计算机程序,比如 gdb 和 dbx 等,也具备基于控制台的命令行界面。一些自动调试工具包括基于代码的跟踪器、探查器、解释器等。

以下是一些广泛使用的工具列表:

  • Radare2
  • WinDbg
  • Valgrind

此外,IDE 也集成了一些调试工具,帮助开发者捉虫子。

参考文献

https://www.edureka.co/blog/what-is-debugging/

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-05-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 老齐教室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 什么是调试?
  • 为什么需要调试?
  • 调试步骤
  • 调试策略
  • 调试工具
  • 参考文献
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档