Chapter 2. Efficient Debugging
Every developer becomes familiar with the word "bug" early on, and the relationship will last for their entire professional career. A bug is an error or flaw in a software system that provokes an unexpected and incorrect result.
There is some discussion about the etymology of the word. It was originally intended to describe technical malfunctions in hardware systems and the first reference to its usage comes from Thomas Edison. Grace Hopper, a computer pioneer, apparently traced in 1946 the malfunctioning of the computer Mark II to a moth that was trapped inside the relay. This physical bug ended up representing not only physical bugs trapped inside machines and causing malfunctions, but also logical bugs or software errors.
Debugging is, in this context, the process of finding bugs or malfunctions in a software system. Debugging involves numerous factors, including reading logs, memory dumping and analysis, profiling, and system monitoring...