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 :
-
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 . |