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.
Une fois que vous avez inscrit vos programmes avec le port approprié, vous devez attacher le débogueur au programme que vous souhaitez déboguer.
Choisir comment attacher
Il existe trois façons dont le gestionnaire de débogage de session (SDM) tente d’attacher le programme en cours de débogage.
Pour les programmes lancés par le moteur de débogage via la méthode LaunchSuspended (typique des langages interprétés, par exemple), le SDM obtient l’interface IDebugProgramNodeAttach2 à partir de l’objet IDebugProgramNode2 associé au programme attaché. Si le SDM peut obtenir l’interface
IDebugProgramNodeAttach2, le SDM appelle ensuite la méthode OnAttach . LaIDebugProgramNodeAttach2::OnAttachméthode retourneS_OKpour indiquer qu’elle n’a pas attaché au programme et que d’autres tentatives peuvent être effectuées pour l’attacher au programme.Si le SDM peut obtenir l’interface IDebugProgramEx2 du programme attaché, le SDM appelle la méthode Attach . Cette approche est généralement destinée aux programmes qui ont été lancés à distance par le fournisseur de ports.
Si le programme ne peut pas être attaché par le biais des méthodes ou des
IDebugProgramNodeAttach2::OnAttachméthodes, le SDM charge le moteur de débogage (s’il n’est pas déjà chargé) en appelant laCoCreateInstancefonction, puis appelle la méthode Attach.IDebugProgramEx2::AttachCette approche est typique des programmes lancés localement par un fournisseur de ports.Il est également possible pour un fournisseur de ports personnalisé d’appeler la
IDebugEngine2::Attachméthode dans l’implémentation du fournisseur de ports personnalisé de laIDebugProgramEx2::Attachméthode. En règle générale, dans ce cas, le fournisseur de ports personnalisé lance le moteur de débogage sur l’ordinateur distant.La pièce jointe est obtenue lorsque le gestionnaire de débogage de session (SDM) appelle la méthode Attach .
Si vous exécutez votre DE dans le même processus que l’application à déboguer, vous devez implémenter les méthodes suivantes d’IDebugProgramNode2 :
-
Une fois la
IDebugEngine2::Attachméthode appelée, procédez comme suit dans votre implémentation de laIDebugEngine2::Attachméthode :
Envoyez un objet d’événement IDebugEngineCreateEvent2 au SDM. Pour plus d’informations, consultez Envoi d’événements.
Appelez la méthode GetProgramId sur l’objet IDebugProgram2 passé à la
IDebugEngine2::Attachméthode.Cela retourne un
GUIDélément utilisé pour identifier le programme. DoitGUIDêtre stocké dans l’objet qui représente le programme local dans le DE, et il doit être retourné lorsque laIDebugProgram2::GetProgramIdméthode est appelée sur l’interfaceIDebugProgram2.Remarque
Si vous implémentez l’interface
IDebugProgramNodeAttach2GUID, le programme est transmis à laIDebugProgramNodeAttach2::OnAttachméthode. Cette méthodeGUIDest utilisée pour lesIDebugProgram2::GetProgramIdretours duGUIDprogramme.Envoyez un objet d’événement IDebugProgramCreateEvent2 pour informer le SDM que l’objet local
IDebugProgram2a été créé pour représenter le programme au DE. Pour plus d’informations, consultez Envoi d’événements.Remarque
Ce n’est pas le même
IDebugProgram2objet qui a été passé dans laIDebugEngine2::Attachméthode. L’objet précédemment passéIDebugProgram2est reconnu par le port uniquement et est un objet distinct.