Bifurcated processes, in which a shadow process in a first environment is
controlling thread scheduling for a trusted agent in a second, high
assurance environment, can be debugged via a two-phase initialization of
the debugger. In the first phase, initial set up is accomplished for the
trusted agent, but no shadow process will schedule execution for any
thread of the trusted agent. The debugger will then be attached. In a
second phase, the shadow process will begin scheduling threads for the
trusted agent. In order to allow the debugger access to the process
memory of the trusted agent or to set or get information regarding a
particular thread of the trusted agent, a thread which is either a thread
belonging to the trusted agent or belonging to the second execution
environment and matched with the trusted agent is used. This admin thread
is used to perform the work of retrieving process memory and information
regarding threads of the trusted agent, allowing such information from
the high assurance environment to be found and used in the debugger in
the first execution environment.