计算机科学

首页 > 计算机科学

程序错误

2018-08-31 09:16:48     所属分类:程序错误
第一次被发现的导致计算机错误的飞蛾,也是第一个计算机程序错误。

程序错误英语:Bug),是程序设计中的术语,是指在软件运行中因为程序本身有错误而造成的功能不正常、死机、数据丢失、非正常中断等现象。有些程序错误会造成计算机安全隐患,此时叫做漏洞

一些有趣的隐错有时也会成为一种乐趣。在计算机游戏中,假如一些隐错不令游戏出现大错误的话,经常会变成一种玩游戏时的秘技(秘技有时是游戏设计人故意造成的,用于程序设计上的检查,绕过不需要的步骤直接检验需要的地方时所使用的代码)。

有严重后果的程序错误会受到广泛关注。[1]

目录

  • 1 Bug的词源
    • 1.1 来自于工程学
    • 1.2 信息工程与一般大众所知的起源
  • 2 Bug的管理与一些常见的名词
  • 3 参考资料
  • 4 参见

Bug的词源

来自于工程学

Bug用来指工程上的错误这种用法大约出现在1870年代,早在计算机出现之前就存在了。目前最早找到的证据是爱迪生在1878年的信[2]

It has been just so in all of my inventions. The first step is an intuition, and comes with a burst, then difficulties arise—this thing gives out and it is then that "Bugs"—as such little faults and difficulties are called—show themselves and months of intense watching, study and labor are requisite before commercial success or failure is certainly reached.

中文翻译如下:

在我所有的发明中都如此。第一步是直觉,然后灵光一闪,然后出现困难——这件事发生了,然后“Bug”——这样称呼那些微小的错误和困难——展现出来。在明确到达商业的成功或失败之前,数个月的密切关注、研究和劳动是必需的。

信息工程与一般大众所知的起源

在1947年9月9日,葛丽丝·霍普(Grace Hopper)发现了第一个计算机上的bug。当在Mark II计算机上工作时,整个团队都搞不清楚为什么计算机不能正常运作了。经过大家的深度挖掘,发现原来是一只飞蛾意外飞入了一台计算机内部而引起的故障(如图所示)。这个团队把错误解除了,并在日志本中记录下了这一事件。也因此,人们逐渐开始用“Bug”(原意为“虫子”)来称呼计算机中的隐错。现在在华盛顿的美国国家历史博物馆中还可以看到这个遗稿。[3]

Bug的管理与一些常见的名词

典型错误历史(GNU Classpath project 数据)。由用户提交的错误是“未确认”(unconfirmed)的,一旦该错误由开发人员重现,即为“已确认”(confirmed)错误。此后已确认的错误会“解决”(fixed)。其他类别的错误(无法重现、不予解决等)通常并不多见。
  • 处理进度
    • New:代表新回报的Bug
    • Resolved:代表Bug已处理完(见下方“处理方式”)
    • Closed:处理完并已被验证
  • 处理方式
    • Fixed:Bug被解决
    • Later:必须到未来的版本才能解决。
    • Workaround:不能解决,但能用其他替代方法来避开问题的。
    • Duplicate:重复回报的Bug
  • Severity:Bug造成的严重性
  • Debugging(简称Debug):指解决Bug的动作和过程(调试)。


参考资料

  1. ^ 软件 Bug 引发的十次严重后果 - 文章 - 伯乐在线
  2. ^ Hughes, Thomas Parke. American Genesis: A Century of Invention and Technological Enthusiasm, 1870-1970. 1989: 75. ISBN 978-0-14-009741-2. 
  3. ^ Log Book With Computer Bug, National Museum of American History

参见

  • 调试
  • 2000年问题
  • 漏洞奖励计划英语Bug bounty program

上一篇:栈缓冲区溢出
下一篇:10000年问题
相关推荐