Débogage de script actif (présentation)Active Script Debugging Overview

Les interfaces de débogage de script actif permettent d’effectuer un débogage indépendant du langage et indépendant de l’hôte, et elles prennent en charge un large éventail d’environnements de développement.The Active Script Debugging interfaces allow language-neutral, host-neutral debugging, and support a wide variety of development environments.

Processus Script HostScript Host Process
Figure 1Figure 1

Un environnement de débogage indépendant du langage peut prendre en charge n’importe quel langage ou combinaison de langages de programmation, sans avoir aucune connaissance spécifique de ces langages de programmation.A language-neutral debugging environment can support any programming language or mix of programming languages, without having specific knowledge of any of those languages. L’environnement de débogage prend également en charge les points d’arrêt et l’exécution pas à pas interlangage.The debugging environment also supports cross-language stepping and breakpoints. (Cette présentation se concentre essentiellement sur la prise en charge des langages de script, tels que VBScript et JavaScriptJavaScript.)(This overview focuses primarily on support scripting languages, such as VBScript and JavaScriptJavaScript.)

Un débogueur indépendant de l’hôte peut être utilisé automatiquement avec n’importe quel hôte Active Scripting, tel qu’Internet Explorer ou un hôte personnalisé.A host-neutral debugger can be automatically used with any Active Scripting host, such as Internet Explorer or a custom host. L’hôte contrôle ce que le débogueur présente à l’utilisateur, de la structure de l’arborescence de documents jusqu’au contenu et à la coloration syntaxique des documents de débogage.The host controls what the debugger presents to the user, from the structure of the document tree to the contents and syntax coloring of the debug documents. Cela permet d’afficher le code source débogué dans le contexte du document hôte.This allows the debugged source code to be shown in the context of the host document. Par exemple, Internet Explorer peut afficher un script dans une page HTML.For example, Internet Explorer can show a script in an HTML page.

Les sous-sections qui suivent décrivent chaque composant clé de débogage actif et ses interfaces associées.In the subsections below, each key component in Active Debugging and its associated interfaces are discussed. Toutefois, avant de continuer, nous devons définir plusieurs concepts clés du débogage actif :However, before proceeding further, several key Active Debugging concepts must be defined:

Application hôtehost application
Application qui héberge les moteurs de script et fournit un ensemble d’objets scriptable (ou « modèle objet »).The application that hosts the script engines and provides a scriptable set of objects (or "object model").

Moteur de langagelanguage engine
Composant qui fournit les abstractions de débogage, d’analyse et d’exécution pour un langage particulier.A component that provides parsing, execution, and debugging abstractions for a particular language.

IDE de débogueurdebugger IDE
Application qui fournit l’interface utilisateur de débogage en communiquant avec l’application hôte et les moteurs de langage.The application that provides debugging UI by communicating with the host application and language engines.

Gestionnaire de débogage d’ordinateurmachine debug manager
Composant qui tient à jour un registre des processus d’application pouvant être débogués.A component that maintains a registry of debuggable application processes.

Gestionnaire de débogage de processusprocess debug manager
Composant qui tient à jour l’arborescence de documents pouvant être débogués pour une application particulière, qui effectue le suivi des threads en cours d’exécution, et ainsi de suite.A component that maintains the tree of debuggable documents for a particular application, tracks the running threads, and so on.

Contexte de documentdocument context
Un contexte de document est une abstraction représentant une plage spécifique dans le code source d’un document hôte.A document context is an abstraction representing a specific range in the source code of a host document.

Contexte de codecode context
Un contexte de code représente un emplacement particulier dans le code en cours d’exécution d’un moteur de langage (un « pointeur d’instruction virtuel ».)A code context represents a particular location in the running code of a language engine (a "virtual instruction pointer".)

Contexte d’expressionexpression context
Contexte particulier (par exemple un frame de pile) dans lequel les expressions peuvent être évaluées par un moteur de langage.A particular context (for example, a stack frame) in which expressions may be evaluated by a language engine.

Exploration des objetsobject browsing
Représentation structurée et indépendante du langage du nom, du type, de la valeur et des sous-objets d’un objet, et qui convient à l’implémentation d’une interface utilisateur de « fenêtre Espion ».A structured, language-independent representation of an object's name, type, value, and sub-objects, suitable for implementing a "watch window" UI.

Vous trouverez ci-dessous une présentation de chacun des principaux composants du débogage actif et des interfaces associées correspondantes, suivie des détails de ces interfaces.Below is an overview of each of the key Active Debugging components and corresponding, associated interfaces, followed by the details of those interfaces.

Moteur de langageLanguage Engine

Le moteur de langage fournit ce qui suit :The language engine provides:

HôtesHosts

L’hôte :The host:

  • Héberge les moteurs de langage.Hosts the language engines.

  • Fournit un modèle objet (ensemble d’objets qui peuvent être scriptés).Provides an object model (set of objects that can be scripted).

  • Définit une arborescence de documents pouvant être débogués, et leur contenu.Defines a tree of documents that can be debugged and their contents.

  • Organise les scripts dans des applications virtuelles.Organizes scripts into virtual applications.

    Il existe deux sortes d’hôtes :There are two kinds of hosts:

  • Un hôte passif prend en charge uniquement les interfaces Active Scripting de base.A dumb host supports just the basic Active Scripting interfaces. Il n’a aucun contrôle sur l’organisation ou la structure des documents. Celles-ci sont déterminées entièrement par les scripts fournis aux moteurs de langage.It has no control over document structure or organizations; this is determined entirely by the scripts provided to the language engines.

  • Un hôte intelligent prend en charge un plus grand ensemble d’interfaces, ce qui lui permet de définir l’arborescence de documents, le contenu des documents et la coloration syntaxique.A smart host supports a larger set of interfaces that allows it to define the document tree, document contents, and syntax coloring. Il existe un ensemble d’interfaces d’assistance, décrites dans la sous-section suivante, qui permettent à un hôte de devenir très facilement un hôte intelligent.There is a set of helper interfaces, described in the next subsection, which make it much easier for a host to be a smart host.

Interfaces d’assistance d’hôte intelligentSmart-host Helper Interfaces

Les méthodes IDebugDocumentHelper fournissent un ensemble simplifié d’interfaces qu’un hôte peut utiliser pour bénéficier des avantages offerts par l’hébergement intelligent sans avoir à gérer toute la complexité (et la puissance) de toute les interfaces d’hôte.The IDebugDocumentHelper methods provide a greatly simplified set of interfaces that a host can use to gain the benefits of smart-hosting without handling the full complexity (and power) of the full host interfaces.

Un hôte n’est bien entendu pas obligé d’utiliser ces interfaces.A host is not required to use these interfaces, of course. Toutefois, le recours à ces interfaces peut éviter d’avoir à implémenter ou à utiliser certaines interfaces plus complexes.However using these interfaces can avoid implementing or using a number of more complicated interfaces.

Interface IDebugDocumentHelperIDebugDocumentHelper Interface
Implémentée par le gestionnaire de débogage de processus, elle fournit des implémentations pour de nombreuses interfaces nécessaires pour l’hébergement intelligent.Implemented by PDM and provides implementations for many interfaces necessary for smart hosting.

Interface IDebugDocumentHostIDebugDocumentHost Interface
Implémentée (de manière facultative) par l’hôte pour exposer au débogueur une fonctionnalité qui est propre à l’hôte, telle que la coloration syntaxique.Implemented (optionally) by the host to expose host-specific functionality, such as syntax coloring, to the debugger.

Pour plus d’informations, consultez Implémentation des interfaces d’assistance d’hôte intelligent.For more information, see Implementing Smart Host Helper Interfaces.

Interfaces complètes d’hôte intelligentFull Smart-host Interfaces

Vous trouverez ci-dessous l’ensemble complet des interfaces qu’un hôte intelligent doit implémenter ou utiliser s’il n’utilise pas les interfaces d’assistance.Below is the full set of interfaces that a smart-host must implement or use if it is not using the helper interfaces.

Interfaces implémentées par l’hôte :Interfaces implemented by host:

Interface IDebugDocumentInfoIDebugDocumentInfo Interface
Fournit des informations sur un document, qui peut être ou ne pas être instancié.Provides information on a document, which may or may not be instantiated.

Interface IDebugDocumentProviderIDebugDocumentProvider Interface
Permet d’instancier un document à la demande.Provides the means for instantiating a document on demand.

Interface IDebugDocumentIDebugDocument Interface
Interface de base pour tous les documents de débogage.The base interface for all debug documents.

Interface IDebugDocumentTextIDebugDocumentText Interface
Fournit l’accès à une version « texte uniquement » du document de débogage.Provides access to a text-only version of the debug document.

Interface IDebugDocumentTextAuthorIDebugDocumentTextAuthor Interface
Autorise la modification de la version « texte uniquement » du document de débogage.Allows editing of the text-only version of the debug document.

Interface IDebugDocumentContextIDebugDocumentContext Interface
Fournit une représentation abstraite d’une partie du document en cours de débogage.Provides an abstract representation of a portion of the document being debugged.

Interfaces implémentées par le gestionnaire de débogage de processus pour le compte de l’hôte :Interfaces implemented by PDM on behalf of the host:

Interface IDebugApplicationNodeIDebugApplicationNode Interface
Étend la fonctionnalité de l’interface IDebugDocumentProvider en fournissant un contexte dans une arborescence de projet.Extends the functionality of the IDebugDocumentProvider interface by providing a context within a project tree.

IDE de débogueurDebugger IDE

L’IDE est une interface utilisateur de débogage indépendante du langage.The IDE is a language-independent debugging UI. Elle offre les fonctionnalités suivantes :It provides:

Gestionnaire de débogage d’ordinateurMachine Debug Manager

Le gestionnaire de débogage d’ordinateur fournit le point de connexion entre les applications virtuelles et les débogueurs en tenant à jour et en dressant une liste des applications virtuelles actives.The machine debug manager provides the hookup point between virtual applications and debuggers by maintaining and enumerating a list of active virtual applications.

Interface IDebugSessionProviderIDebugSessionProvider Interface
Établit une session de débogage pour une application en cours d’exécution.Establishes a debug session for a running application.

Interface IMachineDebugManagerIMachineDebugManager Interface
Interface principale avec le gestionnaire de débogage d’ordinateur.The primary interface to the machine debug manager.

Interface IMachineDebugManagerCookieIMachineDebugManagerCookie Interface
Semblable à IMachineDebugManager, mais cette interface prend en charge les cookies de débogage.Similar to the IMachineDebugManager interface, but this interface supports debug cookies.

Interface IMachineDebugManagerEventsIMachineDebugManagerEvents Interface
Signale les modifications apportées à la liste des applications en cours d’exécution tenue à jour par le gestionnaire de débogage d’ordinateur.Signals changes in the running application list maintained by the machine debug manager.

Interface IEnumRemoteDebugApplicationsIEnumRemoteDebugApplications Interface
Énumère les applications en cours d’exécution sur un ordinateur.Enumerates the running applications on a machine.

Gestionnaire de débogage de processusProcess Debug Manager

Le gestionnaire de débogage de processus effectue les opérations suivantes :The PDM does the following:

Voir aussiSee Also

Interfaces de débogueur de script actifActive Script Debugger Interfaces