Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Un moteur de débogage (DE) fonctionne avec l’interpréteur ou le système d’exploitation pour fournir des services de débogage tels que le contrôle d’exécution, les points d’arrêt et l’évaluation des expressions. Le DE est responsable de la surveillance de l’état d’un programme en cours de débogage. Pour accomplir cela, l'environnement de développement (DE) utilise les méthodes disponibles dans l'environnement d'exécution pris en charge, que ce soit à partir du processeur ou des API fournies par cet environnement.
Par exemple, le Common Language Runtime (CLR) fournit des mécanismes pour surveiller un programme en cours d’exécution via les interfaces ICorDebugXXX. Un DE qui prend en charge le CLR utilise les interfaces ICorDebugXXX appropriées pour effectuer le suivi d’un programme de code managé en cours de débogage. Il communique ensuite les modifications d’état au gestionnaire de débogage de session (SDM), qui transfère ces informations à l’IDE Visual Studio.
Note
Un moteur de débogage cible un runtime spécifique, c’est-à-dire le système dans lequel le programme est débogué s’exécute. Le CLR est le runtime du code managé, et le runtime Win32 est destiné aux applications Windows natives. Si le langage que vous créez peut cibler l’un de ces deux runtimes, Visual Studio fournit déjà les moteurs de débogage nécessaires. Tout ce que vous devez implémenter est un évaluateur d’expression.
Opération du moteur de débogage
Les services de surveillance sont implémentés via les interfaces DE et peuvent entraîner la transition du package de débogage entre différents modes opérationnels. Pour plus d’informations, consultez modes opérationnels. Il n’existe généralement qu’une seule implémentation DE par environnement d’exécution.
Note
Bien qu’il existe des implémentations DE distinctes pour Transact-SQL et JScript, VBScript et JScript partagent un seul DE.
Le débogage de Visual Studio permet aux moteurs de débogage d’exécuter l’une des deux manières suivantes : dans le même processus que l’interpréteur de commandes Visual Studio ou dans le même processus que le programme cible en cours de débogage. Ce dernier formulaire se produit généralement lorsque le processus en cours de débogage est en fait un script exécuté sous un interpréteur. Le moteur de débogage doit avoir une connaissance intime de l’interpréteur pour surveiller le script. Dans ce cas, l’interpréteur est en fait un runtime ; Les moteurs de débogage sont destinés à des implémentations d’exécution spécifiques. En outre, l’implémentation d’un seul DE peut être fractionnée entre les limites du processus et de l’ordinateur (par exemple, le débogage à distance).
Le DE expose les interfaces de débogage Visual Studio. Toutes les communications sont via COM. Que le DE soit chargé en cours, hors processus ou sur un autre ordinateur, il n’affecte pas la communication des composants.
Le composant DE fonctionne avec un évaluateur d'expressions pour permettre à ce runtime particulier de comprendre la syntaxe des expressions. Le DE fonctionne également avec un composant de gestionnaire de symboles pour accéder aux informations de débogage symboliques générées par le compilateur de langage. Pour plus d’informations, consultez évaluateur d’expression et fournisseur de symboles.