What is "debug"
Debug/Debugging (or debug/debugging) is a methodical process of finding and reducing the number of errors, or defects, in a given system (computer program or electronic hardware), providing it with the expected behavior. Software errors include those that prevent the program from running and those that produce an unexpected result.
Debugging begins with trying to reproduce the problem, which may not be a simple task, as in parallel computing. After reproduction, the problem should be reduced to its essence, to facilitate debugging. It is an iterative process in which for each reduction, a new execution is done to ensure the reproduction of the problem. As an analogy, this reduction process can be considered as a form of division and conquest. To automate input reduction, delta debugging methods can be used.
Debugging tends to be more difficult when several subsystems are tightly coupled, as changes in one of them can cause errors to arise in another.
Many books have been written about debugging, since it involves numerous aspects, including interactive debugging, control flow, integration testing, log files, monitoring (of applications, system), memory dumps, Perforation, Statistical Control of Processes and special tactics of the project to improve the detection, besides simplifying the changes.