Interfaces de base

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 :

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 .

Voir aussi