Lecture
In programming, a bug (the bug is the primary meaning: bug, any insect, virus ) is a slang word, usually indicating an error in a program or system, due to which the program produces unexpected behavior and, as a result, a result. Most of the bugs are due to errors made by the developers of the program in its source code, or in its design. Also, some bugs are caused by the incorrect operation of the compiler, generating incorrect code. A program that contains a large number of bugs and / or bugs that seriously limit its performance is called unstable or, in a slang language, “buggy”, “buggy”, “buggy”, “bounce”, “bug (a) chick”).
The term “bug” is usually used in relation to errors that manifest themselves at the stage of the program, in contrast to, for example, design errors or syntax errors. A report containing information about the bug is also called a bug report or a problem report (eng. Bug report ). Report on a critical problem (eng. Crash ), causing a program crash, called crash report (eng. Crash report ).
"Bugs" are localized and eliminated in the process of testing and debugging programs.
There is a widespread legend that on September 9, 1945, scientists at Harvard University, who tested the Mark II Aiken Relay Calculator computer, found a moth stuck between the contacts of an electromechanical relay and Grace Hopperper made the term. The removed insect was glued in with a scotch tape in a technical diary, with the accompanying inscription: “First actual case of bug being found” (“the first real case when a bug was found”). It is believed that this funny fact initiated the use of the word "debugging" in the meaning of "debugging the program", however, most likely, the phrase is a gamburbo.
In fact, this incident occurred on September 9, 1947, and not in 1945. The word “bug” in the modern sense was used *** long before that by the personnel of telegraph and telephone companies in relation to problems with electrical equipment and radio engineering. During the Second World War, the word "bugs" called problems with radar electronics. In 1878, Thomas Edison wrote:
This was repeated again and again with all my inventions. The first step was intuition, an outbreak followed, then obstacles arose - and they disappeared, then Bugs arose - so are small shortcomings and difficulties - and months of constant search, research and hard work are needed before success or failure [1] .
Depending on the software development stage, the error is detected:
To size:
By the time of appearance:
By location and direction:
Depending on the nature of the error, the program and the execution environment, the error may appear immediately or vice versa - for a long time to go unnoticed (for example, Problem 2038).
An error may also manifest itself in the form of a vulnerability that makes unauthorized access to the system or a DoS attack possible.
To debug a program (English debugging ), software developers use special debugger programs (English debugger ). For example, in the Windows operating system, you can use the WinDbg program from the Microsoft Debugging Tools for Windows package. For GNU / Linux and a number of other UNIX-like operating systems, there is a GDB debugger (GNU Debugger).
The bulk of the bugs are usually debugged during the compilation and testing of the program. However, some of the errors still get released and manifest on end-user computers during software operation. To improve the quality of the software, special programs are used, the purpose of which is to catch an error in the target application, collect the necessary information about its symptoms and send a report on the Internet to the developers of this software.
For example, the Dr.Ware utility is built into the Windows operating system. Watson, which by default catches errors in user applications and sends a report to a special Microsoft server. Also, as an example, similar libraries Breakpad [2] and CrashRpt [3] can be given .
Comments
To leave a comment
Informatics
Terms: Informatics