Debugging code
Emulators
- replaces microcontroller in system
- “debuggable” version of microcontroller
Monitors
- add code to microcontroller that can always take control
- requires resources
Agents
- smaller amount of code called by program being debugged
- does not provide complete control