Extensible Firmware Interface Specification
16-2 12/01/02 Version 1.10
16.2 EFI Debug Support Protocol
This section defines the EFI Debug Support protocol which is used by the debug agent.
16.2.1 EFI Debug Support Protocol Overview
The debug-agent needs to be able to gain control of the machine when certain types of events
occur; i.e. breakpoints, processor exceptions, etc. Additionally, the debug agent must also be able
to periodically gain control during operation of the machine to check for asynchronous commands
from the host. The EFI Debug Support protocol services enable these capabilities.
The EFI Debug Support protocol interfaces produce callback registration mechanisms which are
used by the debug agent to register functions that are invoked either periodically or when specific
processor exceptions. When they are invoked by the Debug Support driver, these callback
functions are passed the current machine context record. The debug agent may modify this context
record to change the machine context which is restored to the machine after the callback function
returns. The debug agent does not run in the same context as the rest of EFI and all modifications
to the machine context are deferred until after the callback function returns.
It is expected that there will typically be two instances of the EFI Debug Support protocol in the
system. On associated with the native processor instruction set (IA-32 or Itanium processor
family), and one for the EFI virtual machine that implements EFI byte code (EBC).
While multiple instances of the EFI Debug Support protocol are expected, there must never be
more than one for any given instruction set.