Gestionnaire du débogage de session

Le gestionnaire de session de débogage (SDM) gère un nombre quelconque de moteurs de débogage (DE) qui déboguent un nombre quelconque de programmes dans plusieurs processus sur un nombre quelconque de machines. En plus d’être un multiplexeur de moteurs de débogage, le SDM fournit une vue unifiée de la session de débogage à l’IDE.

Fonctionnement du gestionnaire de session de débogage

Le gestionnaire de session de débogage (SDM) gère les DE. Il peut y avoir plusieurs moteurs de débogage fonctionnant sur une même machine en même temps. Pour multiplexer les DE, le SDM enveloppe un certain nombre d’interfaces des DE et les expose à l’IDE sous forme d’une seule interface.

Pour améliorer les performances, certaines interfaces ne sont pas multiplexées. Au lieu de cela, elles sont utilisées directement à partir du DE, et les appels à ces interfaces ne passent pas par le SDM. Par exemple, les interfaces utilisées avec les contextes de mémoire, de code et de document ne sont pas multiplexées, car elles se réfèrent à une instruction, à une mémoire ou à un document spécifique dans un programme spécifique débogué par un DE spécifique. Aucun autre DE n’a besoin d’être impliqué dans cette communication.

Ce n’est pas le cas pour tous les contextes. Les appels à l’interface du contexte d’évaluation des expressions passent par le SDM. Pendant l’évaluation des expressions, le SDM enveloppe l’interface IDebugExpression2 qu’il donne à l’IDE car lorsque cette expression est évaluée, elle peut impliquer plusieurs DE déboguant des programmes dans le même processus qui pourraient être en cours d’exécution sur le même thread.

Le SDM agit généralement comme un mécanisme de délégation, mais il peut également agir comme un mécanisme de diffusion. Par exemple, lors de l’évaluation des expressions, le SDM agit comme un mécanisme de diffusion pour informer tous les DE qu’ils peuvent exécuter du code sur un thread spécifié. De même, lorsque le SDM reçoit un événement d’arrêt, il diffuse aux programmes qu’ils doivent cesser de s’exécuter. Lorsqu’un pas est appelé, le SDM diffuse aux programmes qu’ils peuvent continuer à s’exécuter. Les points d’arrêt sont également diffusés à tous les DE.

Le SDM ne suit pas le programme, le fil d’exécution ou le frame de pile actuelle. Les informations sur le processus, le programme et le fil d’exécution sont envoyées au SDM en conjonction avec des événements de débogage spécifiques.

Voir aussi