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.
Les interfaces suivantes sont les principales interfaces permettant d’étendre le débogueur à l’aide du Kit de développement logiciel (SDK) Visual Studio.
Discussion
Ces interfaces sont principalement utilisées pour créer le moteur de débogage (DE). Ils sont organisés ici par catégories :
-
Les entités qui peuvent implémenter les interfaces sont les suivantes :
Moteur de débogage (DE)
Fournisseur de ports (PS)
Évaluateur d’expression (EE)
Visual Studio (VS)
Points d’arrêt
Ces interfaces sont liées à l’implémentation et au suivi des points d’arrêt.
| Interface | Implémenté dans | Description |
|---|---|---|
| IDebugBoundBreakpoint2 | DE | Représente un point d’arrêt lié à un emplacement de mémoire. |
| IDebugBreakpointBoundEvent2 | DE | Envoyé par le DE lorsqu’un point d’arrêt est lié à un emplacement mémoire. |
| IDebugBreakpointChecksumRequest2 | VS | Représente un document case activée sum pour une demande de point d’arrêt. |
| IDebugBreakpointErrorEvent2 | DE | Envoyé par le DE lorsqu’un point d’arrêt ne parvient pas à être lié à un emplacement mémoire. |
| IDebugBreakpointEvent2 | DE | Envoyé par le DE lorsqu’un point d’arrêt est atteint. |
| IDebugBreakpointRequest2 | VS | Représente une demande de point d’arrêt ; utilisé pour créer un point d’arrêt en attente. |
| IDebugBreakpointRequest3 | VS | Représente une demande de point d’arrêt ; utilisé pour créer un point d’arrêt en attente. |
| IDebugBreakpointResolution2 | DE | Représente les informations utilisées pour lier un point d’arrêt. |
| IDebugBreakpointUnboundEvent2 | DE | Envoyé par le DE lorsqu’un point d’arrêt n’est pas lié à partir d’un emplacement de mémoire. |
| IDebugErrorBreakpoint2 | DE | Représente un point d’arrêt non valide (retourné par IDebugBreakpointErrorEvent2). |
| IDebugErrorBreakpointResolution2 | DE | Représente les informations de résolution relatives à un point d’arrêt non valide. |
| IDebugFunctionPosition2 | DE | Représente une position dans une fonction où un point d’arrêt est défini. |
| IDebugPendingBreakpoint2 | DE | Représente un point d’arrêt qui doit être lié ; utilisé pour créer un point d’arrêt lié. |
| IEnumDebugBoundBreakpoints2 | DE | Représente une énumération sur un ensemble de points d’arrêt liés. |
| IEnumDebugErrorBreakpoints2 | DE | Représente une énumération sur un ensemble de points d’arrêt qui n’ont pas pu être liés à un emplacement mémoire. |
Contextes
Ces interfaces représentent différents types de contextes au sein du programme en cours de débogage.
| Interface | Implémenté dans | Description |
|---|---|---|
| IDebugCodeContext2 | DE | Représente la position de départ d’une instruction de code. |
| IDebugCodeContext3 | DE | Étend l’interface IDebugCodeContext2 pour permettre la récupération des interfaces de module et de processus. |
| IDebugDocumentContext2 | VS, DE | Représente une position dans un document. |
| IDebugExpressionContext2 | DE | Représente le contexte dans lequel évaluer une expression. |
| IDebugMemoryContext2 | DE | Représente l’emplacement de départ en mémoire d’une collection d’octets. |
| IDebugStackFrame2 | DE | Représente un contexte d’image de pile au niveau d’un point d’arrêt ou d’une exception. |
| IDebugStackFrame3 | DE | Représente un contexte d’image de pile au niveau d’un point d’arrêt ou d’une exception. |
| IEnumDebugCodeContexts2 | DE | Représente une énumération sur un ensemble de contextes de code. |
Serveur principal
Ces interfaces représentent l’ordinateur sur lequel un programme est débogué. Celles-ci sont implémentées par Visual Studio, mais peuvent être appelées par des moteurs de débogage.
| Interface | Implémenté dans | Description |
|---|---|---|
| IDebugCoreServer2 | VS | Fournit l’accès aux ports et aux fournisseurs de ports ainsi qu’aux informations sur l’ordinateur. |
| IDebugCoreServer3 | VS | Représente un IDebugCoreServer2 qui prend en charge le débogage distant. |
Déboguer les moteurs
Ces interfaces représentent les moteurs de débogage et leurs événements associés.
| Interface | Implémenté dans | Description |
|---|---|---|
| IDebugEngine2 | DE | Représente un moteur de débogage personnalisé. |
| IDebugEngine3 | DE | Représente un moteur de débogage personnalisé qui prend en charge le chargement de symboles, JustMyCode et des exceptions. |
| IDebugEngineCreateEvent2 | DE | Envoyé par chaque nouvelle instance du DE pour indiquer qu’elle est prête à gérer les tâches de débogage. |
| IDebugEngineLaunch2 | DE | Représente un moteur de débogage personnalisé qui prend en charge le lancement de programmes. |
| IDebugProgramEngines2 | DE, PS | Représente un nœud de programme qui gère plusieurs moteurs de débogage. |
| IDebugQueryEngine2 | DE | Fournit un moyen pour le SDM d’obtenir une interface vers le moteur de débogage à partir d’un thread, d’un programme ou d’une trame de pile. |
Documents
Ces interfaces représentent des documents (fichiers sources) et leurs éléments associés.
| Interface | Implémenté dans | Description |
|---|---|---|
| IDebugActivateDocumentEvent2 | DE | Envoyé par le DE pour demander l’ouverture d’un document. |
| IDebugDisassemblyStream2 | DE | Représente un flux d’instructions désassemblé à partir d’un document. |
| IDebugDocument2 | VS, DE | Représente un document fourni par le DE, en spécifiant un nom et un ID de classe (CLSID). |
| IDebugDocumentChecksum2 | DE, EE | Représente un case activée sum pour un document de débogage et permet de transmettre la somme case activée sum entre les composants. |
| IDebugDocumentContext2 | VS, DE | Représente un contexte de document, une position dans un document correspondant à une instruction et un contexte de code particulier. |
| IDebugDocumentPosition2 | VS, DE | Représente une position générale dans un document. |
| IDebugDocumentPositionOffset2 | VS | Représente une position dans un fichier source en tant que décalage de caractère. |
| IDebugDocumentText2 | VS, DE | Représente un document texte fourni par le DE (dérivé d’IDebugDocument2), en fournissant le texte réel. |
| IDebugDocumentTextEvents2 | DE | Envoyé par le DE pour spécifier les modifications apportées à un fichier source en mémoire. |
Événements
Ces interfaces représentent tous les événements envoyés entre le DE et le gestionnaire de débogage de session (SDM).
| Interface | Implémenté dans | Description |
|---|---|---|
| IDebugActivateDocumentEvent2 | DE | Envoyé par le DE pour demander l’ouverture d’un document. |
| IDebugBeforeSymbolSearchEvent2 | DE | Le moteur de débogage (DE) envoie cette interface au gestionnaire de débogage de session (SDM) pour définir le message de barre d’état pendant les chargements de symboles. |
| IDebugBreakEvent2 | DE | Envoyé par le DE lorsqu’une pause dans le programme a été terminée. |
| IDebugBreakpointBoundEvent2 | DE | Envoyé par le DE lorsqu’un point d’arrêt est lié. |
| IDebugBreakpointErrorEvent2 | DE | Envoyé par le DE lorsqu’un point d’arrêt ne parvient pas à être lié. |
| IDebugBreakpointEvent2 | DE | Envoyé par le DE lorsqu’un point d’arrêt est atteint. |
| IDebugBreakpointUnboundEvent2 | DE | Envoyé par le DE lorsqu’un point d’arrêt n’est pas lié. |
| IDebugCanStopEvent2 | DE | Envoyé par le DE pour déterminer s’il doit s’arrêter à un emplacement particulier. |
| IDebugDocumentTextEvents2 | DE | Envoyé par le DE pour spécifier les modifications apportées à un fichier source en mémoire. |
| IDebugEngineCreateEvent2 | DE | Envoyé par chaque nouvelle instance du DE pour indiquer qu’elle est prête à gérer les tâches de débogage. |
| IDebugEntryPointEvent2 | DE | Envoyé par le DE pour indiquer que le programme en cours de débogage est prêt à exécuter la première instruction. |
| IDebugErrorEvent2 | DE | Interface utilisée par d’autres interfaces d’événements, qui peuvent renvoyer une erreur, pour fournir des messages d’erreur lisibles par l’homme. |
| IDebugEvent2 | DE, PS | Interface de base à partir de laquelle toutes les autres interfaces d’événements sont dérivées. |
| IDebugEventCallback2 | VS | Représente une interface implémentée par le SDM auquel les événements (exprimés en tant qu’objets implémentant une interface d’événement particulière) sont envoyés. |
| IDebugExceptionEvent2 | DE | Envoyé par le de lorsqu’une exception s’est produite dans le programme en cours de débogage. |
| IDebugExpressionEvaluationCompleteEvent2 | DE | Envoyé par le de lorsqu’une évaluation d’expression asynchrone est terminée. |
| IDebugFindSymbolEvent2 | OBSOLÈTE. N’UTILISEZ PAS. | |
| IDebugInterceptExceptionCompleteEvent2 | DE | Envoyé par le de lors du traitement d’une exception interceptée a été terminé. |
| IDebugLoadCompleteEvent2 | DE | Envoyé par le de lorsqu’un programme a terminé le chargement. |
| IDebugMessageEvent2 | DE | Envoyé par le DE pour que l’IDE affiche un message d’information à l’utilisateur. |
| IDebugModuleLoadEvent2 | DE | Envoyé par le de lorsqu’un module est chargé ou déchargé. |
| IDebugNoSymbolsEvent2 | DE | Signale à l’interface utilisateur du débogueur Visual Studio d’avertir l’utilisateur que les symboles n’ont pas pu être localisés pour l’exécutable lancé. |
| IDebugOutputStringEvent2 | DE | Envoyé par le DE pour que l’IDE affiche une chaîne arbitraire. |
| IDebugPortEvents2 | VS, DE | Envoyé par un port pour communiquer les événements de port à n’importe quel écouteur. |
| IDebugProcessCreateEvent2 | DE, PS | Envoyé par le de ou le port lorsqu’un processus a été créé. |
| IDebugProcessDestroyEvent2 | DE, PS | Envoyé par le de ou le port lorsqu’un processus a été détruit. |
| IDebugProgramCreateEvent2 | DE, PS | Envoyé par le de ou le port lorsqu’un programme a été créé. |
| IDebugProgramDestroyEvent2 | DE, PS | Envoyé par le DE ou le port lorsqu’un programme a été détruit. |
| IDebugProgramDestroyEventFlags2 | DE | Permet à un moteur de débogage de remplacer le comportement par défaut de l’interface utilisateur de Visual Studio lorsque vous terminez une session de débogage. |
| IDebugProgramNameChangedEvent2 | DE | Envoyé du moteur de débogage (DE) au gestionnaire de débogage de session (SDM) lorsque le nom d’un programme change. |
| IDebugPropertyCreateEvent2 | DE | Envoyé par le DE lorsqu’une nouvelle propriété (représentée par l’interface IDebugProperty2 ) a été créée. |
| IDebugPropertyDestroyEvent2 | DE | Envoyé par le DE lorsqu’une propriété a été détruite. |
| IDebugReturnValueEvent2 | DE | Envoyé par le DE lors de la sortie pas à pas d’une fonction ou sur une fonction afin que la valeur de retour puisse être correctement affichée. |
| IDebugSettingsCallback2 | VS | Permet aux moteurs de débogage de lire les paramètres de métrique à distance. |
| IDebugStepCompleteEvent2 | DE | Envoyé par le DE lorsqu’une étape pas à pas, plus ou hors d’une instruction a été effectuée. |
| IDebugSymbolSearchEvent2 | DE | Envoyé par le DE pour indiquer la réussite ou l’échec du chargement des symboles pour un module. |
| IDebugThreadCreateEvent2 | DE | Envoyé par le de lorsqu’un thread a été créé. |
| IDebugThreadDestroyEvent2 | DE | Envoyé par le DE lorsqu’un thread a été détruit. |
| IDebugThreadNameChangedEvent2 | DE | Envoyé par le DE lorsqu’un thread a changé son nom. |
Expressions
Ces interfaces représentent des expressions à évaluer dans un contexte particulier.
| Interface | Implémenté dans | Description |
|---|---|---|
| IDebugExpression2 | DE | Représente une expression à évaluer. Obtenu à partir de l’interface IDebugExpressionContext2 . |
| IDebugExpressionContext2 | DE | Représente un contexte dans lequel une expression est évaluée. Obtenu à partir de l’interface IDebugStackFrame2 . |
| IDebugExpressionEvaluationCompleteEvent2 | DE | Envoyé par le de lorsqu’une évaluation d’expression asynchrone est terminée. |
Mémoire
Ces interfaces représentent des séquences d’octets en mémoire.
| Interface | Implémenté dans | Description |
|---|---|---|
| IDebugMemoryBytes2 | DE | Représente une séquence d’octets en mémoire qui peuvent être lus ou écrits dans. |
| IDebugMemoryContext2 | DE | Représente un emplacement en mémoire d’une séquence d’octets. |
Modules
Ces interfaces représentent un module, qui correspond à un fichier exécutable ou .DLL.
| Interface | Implémenté dans | Description |
|---|---|---|
| IDebugModule2 | DE | Représente un fichier exécutable ou une DLL unique. |
| IDebugModule3 | DE | Représente un IDebugModule2 qui prend en charge les symboles. |
| IDebugModuleLoadEvent2 | DE | Envoyé par le de lorsqu’un module est chargé ou déchargé. |
| IDebugSourceServerModule | DE | Représente les informations du serveur source contenues dans un fichier PDB. |
| IEnumDebugModules2 | DE | Représente une énumération sur un ensemble de modules connus par un IDebugProgram2. |
Ports
Ces interfaces représentent les ports et les fournisseurs de ports.
| Interface | Implémenté dans | Description |
|---|---|---|
| IDebugDefaultPort2 | VS, PS | Représente le port par défaut sur l’ordinateur local. |
| IDebugFirewallConfigurationCallback2 | VS | Active un moteur de débogage qui utilise DCOM pour demander à l’interface utilisateur de Visual Studio de s’assurer que le pare-feu ne bloque pas le débogage à distance. |
| IDebugPort2 | VS, PS | Représente un port. |
| IDebugPortEvents2 | PS | Envoyé par un port pour communiquer les événements de port à n’importe quel écouteur. |
| IDebugPortEx2 | PS | Représente un port qui peut lancer et arrêter des processus. |
| IDebugPortNotify2 | PS | Utilisé pour inscrire et annuler l’inscription de programmes avec un port ; permet au port de suivre les programmes actuellement débogués. |
| IDebugPortPicker | PS | Représente une interface utilisateur personnalisée pour sélectionner le port. |
| IDebugPortRequest2 | VS | Représente une requête pour un port à partir duquel un nouveau port sera créé ou localisé. |
| IDebugPortSupplier2 | PS | Représente un fournisseur de ports. |
| IDebugPortSupplier3 | PS | Représente un fournisseur de ports qui peuvent conserver (enregistrer sur disque) des informations sur les ports qu’il a créés. |
| IDebugPortSupplierDescription2 | PS | Permet à l’interface utilisateur de Visual Studio d’afficher du texte dans la section Informations de transport de la boîte de dialogue Attacher au processus . |
| IDebugWindowsComputerPort2 | VS | Permet d’interroger des informations sur l’ordinateur cible. |
| IEnumDebugPorts2 | VS, PS | Représente une énumération sur un ensemble de ports. |
| IEnumDebugPortSuppliers2 | VS | Représente une énumération sur un ensemble de fournisseurs de ports. |
Processus
Ces interfaces représentent des processus, un seul exécutable qui contient un ou plusieurs programmes.
| Interface | Implémenté dans | Description |
|---|---|---|
| IDebugProcess2 | PS, DE | Représente un processus qui s’exécute sur un ordinateur. |
| IDebugProcess3 | PS, DE | Représente un processus qui prend activement en charge le débogage (utilisé pour remplacer les méthodes Step, Continue et Execute sur l’interface IDebugProgram2 ). |
| IDebugProcessCreateEvent2 | DE, PS | Envoyé par le de ou le port lorsqu’un processus a été créé. |
| IDebugProcessDestroyEvent2 | DE, PS | Envoyé par le de ou le port lorsqu’un processus a été détruit. |
| IDebugProcessEx2 | PS | Représente un processus qui doit suivre la session qui lui est attachée. |
| IEnumDebugProcesses2 | PS | Représente une énumération d’un ensemble de processus sur un port. |
Programmes
Ces interfaces représentent des programmes, des unités logiques d’exécution qui ne correspondent pas nécessairement à un exécutable physique ou à un module.
| Interface | Implémenté dans | Description |
|---|---|---|
| IDebugEngineProgram2 | DE | Représente un IDebugProgram2 qui doit fonctionner en même temps que d’autres programmes débogués. |
| IDebugProgram2 | DE, PS | Représente une unité logique d’exécution. |
| IDebugProgramCreateEvent2 | DE, PS | Envoyé par le de ou le port lorsqu’un programme a été créé. |
| IDebugProgramDestroyEvent2 | DE, PS | Envoyé par le DE ou le port lorsqu’un programme a été détruit. |
| IDebugProgramEngines2 | DE, PS | Représente un IDebugProgramNode2 qui peut être géré par plusieurs moteurs de débogage. |
| IDebugProgramEx2 | PS | Représente un IDebugProgram2 qui doit être en mesure de suivre la session qui lui est attachée. |
| IDebugProgramHost2 | DE, PS | Représente un IDebugProgram2 qui peut retourner des informations sur le processus dans lequel il est en cours d’exécution. |
| IDebugProgramNode2 | DE, PS | Représente un programme qui peut être débogué. |
| IDebugProgramNodeAttach2 | DE, PS | Permet à un nœud de programme d’être averti d’une tentative d’attachement au programme associé. |
| IDebugProgramProvider2 | DE | Fournit un moyen pour le SDM d’interroger un DE sur les programmes contrôlés par ce DE. |
| IDebugProgramPublisher2 | VS | Utilisé par les DE pour inscrire des programmes auprès du SDM pour montrer qu’ils sont débogués. |
| IDebugProviderProgramNode2 | DE, PS | Représente un IDebugProgramNode2 qui peut marshaler des interfaces entre les limites de thread ou de processus. |
| IEnumDebugPrograms2 | DE, PS | Représente une énumération d’un ensemble de programmes. |
Propriétés
Ces interfaces représentent des propriétés, une valeur associée à un contexte particulier, généralement le résultat d’une évaluation d’expression.
| Interface | Implémenté dans | Description |
|---|---|---|
| IDebugCustomViewer | EE | Représente un IDebugProperty2 qui peut afficher sa valeur de manière personnalisée. |
| IDebugProperty2 | DE | Représente une valeur d’un cadre de pile, d’un document ou du résultat d’une évaluation d’expression. |
| IDebugProperty3 | DE | Représente un IDebugProperty2 qui prend en charge des chaînes arbitrairement longues. |
| IDebugPropertyCreateEvent2 | DE | Envoyé par le DE lorsqu’une nouvelle propriété (représentée par l’interface IDebugProperty2 ) a été créée. |
| IDebugPropertyDestroyEvent2 | DE | Envoyé par le DE lorsqu’une propriété a été détruite. |
| IDebugReference2 | DE | Représente une référence à une propriété qui peut exister en dehors d’un cadre de pile particulier. |
| IEnumDebugPropertyInfo2 | DE | Représente une énumération sur un ensemble de structures DEBUG_PROPERTY_INFO qui décrivent des variables, des registres, des paramètres et des expressions. |
| IEnumDebugReferenceInfo2 | DE | Représente une énumération sur un ensemble de structures DEBUG_REFERENCE_INFO . |
Frames de pile
Ces interfaces représentent une trame de pile, un contexte dans lequel un point d’arrêt ou une exception s’est produit.
| Interface | Implémenté dans | Description |
|---|---|---|
| IDebugStackFrame2 | DE | Représente un contexte dans lequel un point d’arrêt ou une exception s’est produit. |
| IDebugStackFrame3 | DE | Représente un IDebugStackFrame2 qui peut gérer les exceptions interceptées. |
| IEnumCodePaths2 | DE | Représente une énumération sur l’ensemble de structures CODE_PATH qui spécifient la séquence d’appels de fonction utilisée pour arriver à une trame de pile particulière. |
| IEnumDebugFrameInfo2 | DE | Représente une énumération sur un ensemble de structures FRAMEINFO , qui décrivent les trames de pile. |
Threads
Ces interfaces représentent des threads et leurs événements associés.
| Interface | Implémenté dans | Description |
|---|---|---|
| IDebugThread2 | DE | Représente un thread d’exécution. |
| IDebugThreadCreateEvent2 | DE | Envoyé par le de lorsqu’un thread a été créé. |
| IDebugThreadDestroyEvent2 | DE | Envoyé par le DE lorsqu’un thread a été détruit. |
| IDebugThreadNameChangedEvent2 | DE | Envoyé par le DE lorsqu’un thread a changé son nom. |
| IEnumDebugThreads2 | DE | Représente une énumération sur un ensemble de threads. |
Visualiseurs de type
Ces interfaces prennent en charge les visualiseurs de type. Ces interfaces sont généralement implémentées par un évaluateur d’expression.
| Interface | Implémenté dans | Description |
|---|---|---|
| IEEDataStorage | EE | Représente un tableau d’octets à présenter à un visualiseur de type. |
| IPropertyProxyEESide | EE | Fournit des méthodes permettant d’accéder aux données à passer à un visualiseur de type. |
| IPropertyProxyProvider | EE | Représente une propriété qui fournit l’accès aux implémentations IPropertyProxyEESide . |