Safari Books Online is a digital library providing on-demand subscription access to thousands of learning resources.
The limited resources on an embedded system mean you need to begin thinking about application debugging while you're doing the application development. This section contains some best practices that help make debugging easier when the target machine lacks a keyboard, mouse, or monitor. If you're accustomed to debugging an operating system that included the application as a process within the OS (hint: this OS begins with the letters vx), Linux works differently, and this requires a change in practice.
The project you created earlier in the chapter performs one of the critical steps in preparing to debug: creating a build for the software that runs on the development target. If you can run and debug the code on the target, that's the most effective way to root out gross defects. Finer defects, like those surrounding timing or handling the input from a device, must be done on the board. Intelligently configuring the project so that it's isolated enough from its hardware offers a handsome return, because debugging on the development host is much more productive than remote debugging.