From Wikipedia, the free encyclopedia
转译自:wiki http://en.wikipedia.org/wiki/Debugging不当处多指正
这是一篇关于程序方法的文章,不是dos 工具DEBUG
起源:
关于debugging的起源有许多争议.术语bug和debugging流行于40年代,这要归因于Admiral Grace Hopper(文档[1]查看详情).但是术语bug至少可以上溯到1878年Thomas Edison(文档 Software bug 查看详细的讨论).而术语debugging在进入计算机领域之前貌似应用在航天学中.
牛津英文词典debug这一条说1945年royal Aeronautical Society期刊上的一篇文章将术语debugging应用于飞机引擎测试中.但是Hopper的bug是1947年发现的,直到50年代这一术语才被计算机程序员采用.1951年Gill [2]写的基础性的文章最早深入讨论了程序的错误,但是没有用术语bug和debugging.在ACM的数字图书馆中,术语debugging第一次应用在1952ACM National Meetings的三篇论文中[3][4][5],其中的二篇用了引号.到1963年,debugging这一术语应用的很普遍,并且不用考虑引用CTSS 手册中 [6]的解释.
在1998年IEEE关于计算历史的年报上,Peggy Aldrich Kidwell 的文章 "Stalking the Elusive Computer Bug" 详细讨论了 "bug" 和 "debug"的起源. [7]
工具:
通常来说,debugging 是一件麻烦累人的工作.程序员的debugging技术可能是成功调试程序的最重要因素,但是软件调试的困难是随使用的程序语言和工具而大不相同的.调试器(debuggers)是一类很好的软件工具.它帮助程序员监控程序的执行,停止执行,重新执行,以慢动作执行,改变内存中的数值,甚至可以执行中向前回退.术语debugger也可以指做调试工作的人.
通常高级程序语言,比如Java,C++,Python,因为它们有异常处理功能使得奇怪行为的真实原因更加容易被发现.低级程序语言,比如C和汇编,bugs可能会导致内存泄漏这样的隐性问题,通常很难找到问题发生的最初位置.出现这些情况,就需要功能强大的调试工具来帮忙.