Administrador de depuración de sesión
El administrador de depuración de sesión (SDM) administra cualquier número de motores de depuración (DE) que depuran cualquier número de programas en varios procesos en cualquier número de máquinas. Además de ser un multiplexor del motor de depuración, el SDM proporciona una vista unificada de la sesión de depuración al IDE.
Funcionamiento del administrador de depuración de sesión
El administrador de depuración de sesión (SDM) administra el DE. Puede haber más de un motor de depuración que se ejecute en una máquina al mismo tiempo. Para multiplexar los DE, el SDM ajusta una serie de interfaces de los DE y los expone al IDE como una sola interfaz.
Para aumentar el rendimiento, algunas interfaces no se multiplexan. En su lugar, se usan directamente desde el DE y las llamadas a estas interfaces no pasan por el SDM. Por ejemplo, las interfaces usadas con contextos de memoria, código y documento no se multiplexan, ya que hacen referencia a una instrucción, memoria o documento específicos en un programa específico depurado por un DE específico. Ningún otro DE debe participar en ese nivel de comunicación.
Esto no es cierto en todos los contextos. Las llamadas a la interfaz de contexto de evaluación de expresiones pasan por el SDM. Durante la evaluación de expresiones, el SDM ajusta la interfaz IDebugExpression2 que proporciona al IDE porque, cuando se evalúa esa expresión, puede implicar a varios DE que están depurando programas en el mismo proceso que podrían estar ejecutándose en el mismo subproceso.
El SDM normalmente actúa como un mecanismo de delegación, pero podría actuar como mecanismo de difusión. Por ejemplo, durante la evaluación de expresiones, el SDM actúa como mecanismo de difusión para notificar a todos los DE que pueden ejecutar código en un subproceso especificado. Del mismo modo, cuando el SDM recibe un evento de detención, transmite a los programas que deben dejar de ejecutarse. Cuando se llama a un paso, el SDM transmite a los programas que pueden seguir ejecutándose. Los puntos de interrupción también se transmiten a cada DE.
El SDM no realiza un seguimiento del programa, subproceso o marco de pila actuales. La información del proceso, programa y subproceso se envían al SDM junto con eventos de depuración específicos.