The Importance of Debugging in Embedded Development
Many people in the software industry think that embedded software developers spend most of their time designing software and writing code. But it is not true. Ask any embedded developer what activity takes more time and he will point to debugging (getting the code to work properly). Debugging has become vital due to the complexity of inner code. Multicore designs have also added to the work load.
Thankfully, a number of debugging techniques have been developed to reduce the work, such as simulation and virtual prototyping. Incidentally, before computers became so compact and cheap, programmers used to make fewer errors when they wrote code. They actually used to write code on paper and proofread it carefully, to prevent syntax errors. But this practice is not being followed now, mostly because computers have become so cheap. Debugging tools have also made the job easier.
As a result, you have a proliferation of errors and developers are having to spend a lot of time to fix them. This is important because unless these errors are fixed, the system might crash or won’t give the real-world response you want. Most programmed devices contain many of lines of code, which means any new product will contain at least a few bugs. So debugging actually makes the software better.