前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Debug究竟是什么意思?

Debug究竟是什么意思?

作者头像
Power7089
发布2020-07-27 15:27:20
4.2K0
发布2020-07-27 15:27:20
举报

各位,相信你们都听过Debug这个词,那这个词在我们计算机领域究竟是什么意思呢?今天就在这和大伙简单说道说道,讲的不好不对的地方还请大家批评指正。

那我们就从这个名字的由来说起,一位名叫葛丽丝·霍波(Grace Hopper)的美国海军准将及计算机科学家,同时也是世界最早的一批程序设计师之一。有一天,她在调试设备时出现故障,拆开继电器后,发现有只飞蛾被夹扁在触点中间,从而“卡”住了机器的运行。于是,霍波诙谐的把程序故障统称为“臭虫(BUG)”,把排除程序故障叫DEBUG,那这个词也就这么来了,是不是发现好多名词都是这么无意之间来的?

那到了今天Debug究竟是什么意思呢?其实从本质上来说,Debug是一种程序,一种调试工具,说白了就是供程序员检查修改问题的工具。用比较正式的话说Debug是DOS,Windows都提供的实模式(也就是8086方式)程序的调试工具。其实严格来说,Debug是在DOS方式下使用的程序,我们在进入Debug前应该先进入DOS。而就目前我们用的计算机来说,进入DOS有以下两种方法:

1.重启计算机,进入DOS,此时进入的是实模式的DOS。

2.在Windows界面进入DOS,此时进入的是虚拟8086模式的DOS。

讲到这里一定有人会问,实模式和虚拟8086模式什么意思?给大家简单讲一下:

我们所说的CPU工作模式分为实模式和保护模式两种,而虚拟8086是保护模式下一种任务的运行模式,并非CPU的工作模式。大家平时用的Windows系统是运行在保护模式下的,而计算机在刚启动的时候是在实模式下运行,在启动Windows系统时进入保护模式,除非关闭系统,否则不会回到实模式。如果要一直在实模式下运行,那就得使用DOS等实模式下的操作系统。但是在Windows系统中加载的DOS程序是在虚拟8086模式下运行的。当然这里面涉及了一些DOS的相关知识,由于篇幅原因咱们在这儿就不讲了,感兴趣的可以留言评论一起交流。

好了,言归正传,回到Debug上, 这里有一点需要注意,Debug把所有数据都当成字节处理,因此可以用它检查内存中任何地方的字节以及修改任何地方的字节。它可以用于逐指令执行某个程序以验证程序运行的正确性,也可以在机器码这个级别追踪执行过程、比较一个指令执行前后的值以及比较与移动内存中数据的范围,读写文件与磁盘扇区。

值得一提的是,Debug在汇编语言中的应用非常广泛,Debug的命令比较多,大约20多个,和汇编密切相关的有R命令、D命令、E命令、U命令、T命令、A命令等等,当然每个命令作用不同,比如D是查看内存内容,E是修改内存内容,T是执行一条机器指令等等,还有很多,而且都有固定的命名使用格式,这里就不一一讲了,我们今天主要是让大家知道并理解Debug的意思,关于怎么使用它学有余力的可以自行学习研究一下,好了,就到这里吧。

各位,关于Debug你明白了吗?

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

本文分享自 程序员阿甘 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档