Summary
We have now made it to the end of this chapter.
I hope I was able to introduce some new debugging features and concepts that inspire you to explore different approaches and methods for analyzing software problems.
We learned about important fundamentals, such as logging, breakpoints, and debug state control. We also dove into more situational features, such as memory manipulation, debug symbol analysis, and register operations.
These features are typically available with most embedded debug setups and are thus easily accessible. Should you be undecided about whether you want to spend the effort to get an embedded software debug set up and running to assist your development efforts, my recommendation is that you should definitely do it. The initial setup time dwarfs in comparison to the benefits you gain down the road in your project, specifically when you run into difficult bug types.
However, there will be bugs or scenarios that can't be analyzed properly just with the basic...