3.1.2 CADI and threads

Debugging a simulation model that exposes a CADI implementation typically uses one simulation thread and one (debugger) thread for each connected debugger.

To decouple the threads (especially the debugger threads from the simulation thread) and avoid deadlocks, you must obey these rules when implementing the interface:
  • Methods of the classes CADI, CADIDisassembler, CADISimulation, CADISimulationFactory, CADIBroker, and CADIProfiling must only be called from a debugger thread.
  • Methods and callbacks from the callback classes CADIProfilingCallbacks, CADIErrorCallback, CADISimulationCallback, and CADICallbackObj must only be called from the simulation thread.
This implicitly means that:
  • A CADI callback method must never directly call a normal CADI method.
  • A normal CADI method must never directly call a CADI callback method.
Non-ConfidentialPDF file icon PDF versionARM DUI0842F
Copyright © 2014, 2015 ARM. All rights reserved.