Debugging: Difference between revisions

Content deleted Content added
Frp running
Tags: Visual edit Mobile edit Mobile web edit
m Made Some Grammatical corrections and added some links.
Line 3:
{{Software development process|Core activities}}
 
In [[engineering]], '''debugging''' is the process of finding the [[Root cause analysis|root cause]], [[workaround]]s, and possible fixes for [[bug (engineering)|bugs]].
 
For [[software]], debugging tactics can involve [[interactive]] debugging, [[control flow]] analysis, [[Logfile|log file analysis]], monitoring at the [[application monitoring|application]] or [[system monitoring|system]] level, [[memory dump]]s, and [[profiling (computer programming)|profiling]]. Many [[Programming language|programming languages]] and [[Programming tool|software development tools]] also offer programs to aid in debugging, known as [[debugger]]s.
 
==Etymology==
Line 15:
A popular story from the 1940s is from [[Admiral Grace Hopper]].<ref>{{Cite web |url=https://books.google.com/books?id=JT0EAAAAMBAJ&pg=RA1-PA33 |title=InfoWorld Oct 5, 1981 |date=5 October 1981 |access-date=July 17, 2019 |archive-date=September 18, 2019 |archive-url=https://web.archive.org/web/20190918012636/https://books.google.com/books?id=JT0EAAAAMBAJ&pg=RA1-PA33&lpg=RA1-PA33&focus=viewport |url-status=live }}</ref> While she was working on a [[Harvard Mark II|Mark II]] computer at Harvard University, her associates discovered a [[moth]] stuck in a relay that impeded operation and wrote in a log book "First actual case of a bug being found". Although probably a [[word play|joke]], conflating the two meanings of bug (biological and defect), the story indicates that the term was used in the computer field at that time.
 
Similarly, the term ''debugging'' was used in aeronautics before entering the world of [[Computer|computers]]. A letter from [[J. Robert Oppenheimer]], director of the [[WWII]] atomic bomb [[Manhattan Project]] at Los Alamos, used the term in a letter to Dr. [[Ernest Lawrence]] at UC Berkeley, dated October 27, 1944,<ref>{{Cite web |url=https://bancroft.berkeley.edu/Exhibits/physics/images/bigscience25.jpg |title=Archived copy |access-date=2019-12-17 |archive-date=2019-11-21 |archive-url=https://web.archive.org/web/20191121001830/https://bancroft.berkeley.edu/Exhibits/physics/images/bigscience25.jpg |url-status=live }}</ref> regarding the recruitment of additional technical staff.
The [[Oxford English Dictionary]] entry for ''debug'' uses the term ''debugging'' in reference to airplane engine testing in a 1945 article in the Journal of the Royal Aeronautical Society.
An article in "Airforce" (June 1945 p.&nbsp;50) refers to ''debugging'' aircraft cameras.
Line 21:
The seminal article by Gill<ref>S. Gill, [https://www.jstor.org/stable/98663 The Diagnosis of Mistakes in Programmes on the EDSAC] {{Webarchive|url=https://web.archive.org/web/20200306083748/https://www.jstor.org/stable/98663 |date=2020-03-06 }}, Proceedings of the Royal Society of London. Series A, Mathematical and Physical Sciences, Vol. 206, No. 1087 (May 22, 1951), pp. 538-554</ref> in 1951 is the earliest in-depth discussion of programming errors, but it does not use the term ''bug'' or ''debugging''.
 
In the [[Association for Computing Machinery|ACM]]'s digital library, the term ''debugging'' is first used in three papers from the 1952 ACM National Meetings.<ref>Robert V. D. Campbell, [https://dl.acm.org/citation.cfm?id=609784.609786 Evolution of automatic computation] {{Webarchive|url=https://web.archive.org/web/20190918012641/https://dl.acm.org/citation.cfm?id=609784.609786 |date=2019-09-18 }}, Proceedings of the 1952 ACM national meeting (Pittsburgh), p 29-32, 1952.</ref><ref>Alex Orden, [https://dl.acm.org/citation.cfm?id=609784.609793 Solution of systems of linear inequalities on a digital computer], Proceedings of the 1952 ACM national meeting (Pittsburgh), p. 91-95, 1952.</ref><ref>Howard B. Demuth, John B. Jackson, Edmund Klein, N. Metropolis, Walter Orvedahl, James H. Richardson, [https://dl.acm.org/citation.cfm?id=808982 MANIAC] doi=10.1145/800259.808982, Proceedings of the 1952 ACM national meeting (Toronto), p. 13-16</ref> Two of the three use the term in quotation marks.
 
By 1963, ''debugging'' was a common- enough term to be mentioned in passing without explanation on page 1 of the [[Compatible Time-Sharing System|CTSS]] manual.<ref>[http://www.bitsavers.org/pdf/mit/ctss/CTSS_ProgrammersGuide.pdf The Compatible Time-Sharing System] {{Webarchive|url=https://web.archive.org/web/20120527174321/http://www.bitsavers.org/pdf/mit/ctss/CTSS_ProgrammersGuide.pdf |date=2012-05-27 }}, M.I.T. Press, 1963</ref>
 
==Scope==