对于代码调试(debugging)的释义以及进行调试的基本方法小结

举报
白鹿第一帅 发表于 2021/03/05 21:00:07 2021/03/05
【摘要】 我们在项目开发过程中,经常遇到需要进行调试的代码模块。对于初学者而言,手工跟踪最为有效和方便,一方面可以重新对于系统的内部逻辑进行一次梳理,另一方面还可以找到产生问题的地方。而对于高阶的开发者而言,手工跟踪的方式极大地浪费了时间,所以需要调试工具的帮忙。通过本文我将为大家介绍何为代码调试?如何进行手工跟踪和使用调试工具进行代码调试,调试工具又具备什么特性?

文章目录

  • 前言
  • 一、何为代码调试?
  • 二、常见的代码调试方式
    • 2.1、手工跟踪(hand trace)
      • 2.1.1、适用范围
    • 2.2、使用调试工具
      • 2.2.1、Java 中的调试工具
      • 2.2.2、调试工具具备的特性
  • 总结

前言

我们在项目开发过程中,经常遇到需要进行调试的代码模块。对于初学者而言,手工跟踪最为有效和方便,一方面可以重新对于系统的内部逻辑进行一次梳理,另一方面还可以找到产生问题的地方。而对于高阶的开发者而言,手工跟踪的方式极大地浪费了时间,所以需要调试工具的帮忙。通过本文我将为大家介绍何为代码调试?如何进行手工跟踪和使用调试工具进行代码调试,调试工具又具备什么特性?

在这里插入图片描述


一、何为代码调试?

查找和改正错误的过程称为调试(debugging)。

调试的一般途径是采用各种方法逐步缩小程序中bug所在的范围。

20191115111535704.png

二、常见的代码调试方式

2.1、手工跟踪(hand trace)

手工跟踪(hand trace)程序(即通过读程序找错误),也可以插入打印语句,显示变量的值或程序的执行流程。

2.1.1、适用范围

这种方法适用于短小、简单的程序。

2.2、使用调试工具

对于庞大、复杂的程序,最有效的调试方法还是使用调试工具。

2.2.1、Java 中的调试工具

JDK 包含了一个命令行调试器 Jdb,结合一个类名来调用该命令。Jdb 本身也是一个 Java 程序,运行本身的一个 Java 解释器的拷贝。

2.2.2、调试工具具备的特性

所有的 Java IDE 工具,比如 Eclipse 和 NetBeans 包含集成的调试器。调试器应用让你可以跟踪一个程序的执行。他们因程序的不同,但是大都支持以下特征中的多数:

  • 一次执行一条语句:调试器允许你一次执行一条语句,从而可以看到每条语句的效果。
  • 跟踪进入或者一步运行过一个方法:如果一个方法正在被执行,你可以让调试器跟踪进入方法内部,并且一次执行方法里面的一条语句,或者你可以让调试器一步运行过整个方法。如果你知道方法是可行的,你应该一次运行过整个的方法。比如,通常都会一步运行过系统提供的方法,比如,System.out.println
  • 设置断点:你可以在一条特定的语句上面设置断点。当遇到一个断点时,你的程序将暂停。你可以设置任意多的断点。当你知道程序错误从什么地方可能开始的时候,断点特别有用。你可以将断点设置在那条语句上,让程序先执行到断点处。
    关于使用Eclipse进行断点调试的方法请移步这里——如何使用 Eclipse 进行断点调试?
  • 显示变量:调试器让你选择多个变量并且显示他们的值。当你跟踪一个程序的时候,变量的内容持续更新。
  • 显示调用堆栈:调试器让你跟踪所有的方法调用。当你需要看到程序执行的流程的宏观图景的时候,这个特征非常有用。
  • 修改变量:一些调试器允许你在调试的过程中修改变量的值。当你希望用不同的示例来测试程序,而又不希望离开调试器的时候,这是非常方便的。

总结

本文给大家介绍了什么是代码调试,作为开发者,初学者和高阶应如何选择代码调试的方式,不同的代码调试方式又有何种不同,代码调试工具应该具备什么特性可以满足开发者需求。而现在我们常见的代码调试工具多集成到了开发 IDE 中,如 Eclipse 和 IDEA。在本文的 2.2.2 节给大家引入了如何使用 Eclipse 进行断点调试,那么你会使用 IDEA 进行代码调试吗?

在这里插入图片描述


我是白鹿,一个不懈奋斗的程序猿。望本文能对你有所裨益,欢迎大家的一键三连!若有其他问题、建议或者补充可以留言在文章下方,感谢大家的支持!

【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。