Debugging embedded systems is almost guaranteed to cause headaches. Embedded systems, and especially portable embedded systems, are becoming increasingly complex and have unique constraints that make them hard to debug. Traditional static debugging tools provided by the embedded development tool chains are important but are only part of the story. Time-dependant issues cannot be debugged by such tools. Embedded environments have to provide efficient mechanisms for managing a range of issues such as thread interaction, control of timers, semaphores and mutexes, IPC message passing, event handling, and finite-state machine organizations. This chapter looks at issues of escalating complexity in modern heterogeneous embedded systems and their impact on debugging techniques and advocates a framework approach to manage this complexity. Using the ClarinoxSoftFrame® Suite framework as an illustrative example, this chapter describes how a modular and open approach to debugging can aid the rapid development of robust wireless-enabled embedded systems that employ a variety of operating systems and platforms. The overall objective in this type of approach is to leverage prebuilt code infrastructure plus existing development skills as much as possible, thereby avoiding the need for engineering staff to learn and re-learn a range of compilers, operating systems, and the like. Overall, debug time can be greatly reduced by improved visibility into the complex interactions between cooperating processes within the code. Collateral benefits can include a reduction in the size of the necessary development team with a reduction in skills specialization.