|Home > Iris APIs > Events and trace API|
All Iris events are handled through this interface.
Target instances can expose zero or more event sources. Event sources emit:
INSTevents for each executed instruction.
An instance that produces events is called an event producer, or trace producer. It implements the
An instance that receives event callbacks is called an event consumer, or trace consumer. It must implement the callbacks for the events it requested, for example
Instances that do not expose any event sources must either return
E_function_not_supported_by_instance for the
event_*() functions, or return an empty list of event sources. In practice, however, all instances that implement Iris interfaces that might generate events, must also implement the event interface to expose them, and allow clients to receive them. In particular, instances that support the breakpoint interface or the semihosting interface must implement the event interface.
Most clients only need to call the following functions:
Alternatively, clients can enable or disable events by calling
eventStream_disable(). These functions might provide a performance benefit over
eventStream_destroy() when repeatedly enabling and disabling the same event stream.
The client implements the event callback functions
ec_*(), as needed.
The other functions in this API are more unusual and deal with ringbuffering events, counter events, and reading the state of an event.
$PVLIB_HOME/Iris/Examples/Client/SimpleTraceClient/ contains an example client application that demonstrates how to use this API.