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 100963_0200_00_en
Copyright © 2014–2017 ARM Limited or its affiliates. All rights reserved.