调试

java分享会

分享人:北京分院 于博韬

1.背景介绍

2.知识剖析

3.常见问题

4.解决方案

5.编码实战

6.扩展思考

7.参考文献

8.更多讨论

1.背景介绍

我们程序员一生与Bug纠缠不清,自然一辈子离不开调试

今天的话题就讲程序员与Debug不得不说的故事

首先我们看调试

百度上讲,调试是保证所提供的设备能够正常运行的必须程序,所有费用由设备提供商负担。

编好程序后,用各种手段进行查错和排错的过程。作为程序的正确性不仅仅表现在正常功能的完成上, 更重要的是对意外情况的正确处理。从心理学的角度考虑,开发人员和调试人员不应该是同一个人。

说道调试一定离不开Debug

今天就重点讲讲Debug的故事

2.知识剖析

DEBUG是一种计算机程序。

那我们就先讲一个趣味的小故事

马克2号(Harvard Mark II)编制程序的葛丽丝·霍波(Grace Hopper)是一位美国海军准将及计算机科学家,同时也是世界最早的一批程序设计师之一。 有一天,她在调试设备时出现故障,拆开继电器后,发现有只飞蛾被夹扁在触点中间,从而“卡”住了机器的运行。 于是,霍波诙谐的把程序故障统称为“臭虫(BUG)”,把排除程序故障叫DEBUG,而这奇怪的“称呼”,竟成为后来计算机领域的专业行话。

但是Debug其实是DOS系统中的一个程序,而且比较底层,涉及汇编,不是我们想要的

那我们想要的是什么?

Debugger

3.常见问题

那么问题来了

Debugger是什么?干什么的?怎么用?

4.解决方案

先说是什么以及干什么?

我们经常使用到的“Debugger”只是用来帮助我们进行Debug的工具,“Debugger”本身不能自动完成“Debug”。

我们可以回想一下我们是如何进行Debug的,在进行Debug的过程中,我们通过Debugger来完成以下工作:

(1)监视“Debug对象”的状态;

(2)控制“Debug对象”的运行;

这些工作可以为“发现Debug对象中存在的问题”以及“对解决问题方案的检验”提供有用的信息。 监控工作有时只需要由软件就可以完成,有时不仅需要软件支持,还需要硬件的支持。 Debugger除了被用来Debug,还被用来帮助我们理解“Debug的对象”内部结构,因为我们用到的Debugger能够完成对“Debug对象”的监控工作, 在监控的过程中可以获取“Debug对象”动态特征的信息,这对我们理解其结构是非常有用的。

接下来说怎么用

首先我是用的IDEA编译工具,所以这次小课堂只讲解IDEA自带的Debug工具,其他工具请自行了解

然后,我们再说下Debug常用的按键(仅限IDEA)

F7:单步调试,会进入方法体,如果该方法体还有方法,则不会进入该内嵌的方法中

F8:单步调试,不会进入

F9:跳至下一断点

Shift+F8:跳出

Alt+F8:可以通过在 Debug 的状态下,选中对象,弹出可输入计算表达式调试框,查看该输入内容的调试结果 。

暂时知道这么多就已经可以了

5.编码实战

憋说话,用心感受我的操作~

6.扩展思考

畅所欲言

7.参考文献

百度

各种blog

8.更多讨论

鸣谢

感谢观看,如有出错,恳请指正

BY : 北京分院 于博韬