Attacher directement à un programmeAttach directly to a program

Les utilisateurs qui souhaitent déboguer des programmes dans un processus qui est déjà en cours d’exécution en général, procédez comme suit :Users who want to debug programs in a process that is already running typically follow this process:

  1. Dans l’IDE, choisissez le déboguer les processus commande à partir de la outils menu.In the IDE, choose the Debug Processes command from the Tools menu.

    La boîte de dialogue Processus s’affiche.The Processes dialog box appears.

  2. Choisir un processus et cliquez sur le attacher bouton.Choose a process and click the Attach button.

    Le attacher au processus boîte de dialogue apparaît, répertoriant tous les moteurs de débogage (DEs) installés sur l’ordinateur.The Attach to Process dialog box appears, listing all debug engines (DEs) installed on the machine.

  3. Spécifiez la norme à utiliser pour déboguer le processus sélectionné, puis cliquez sur OK.Specify the DEs to use to debug the selected process, and then click OK.

    Le package de débogage démarre une session de débogage et lui transmet la liste de DEs.The debug package starts a debug session and passes the list of DEs to it. La session de débogage à son tour transmet cette liste, ainsi que d’une fonction de rappel pour le processus sélectionné et vous demande ensuite le processus à énumérer ses programmes en cours d’exécution.The debug session in turn passes this list, along with a callback function, to the selected process, and then asks the process to enumerate its running programs.

    Par programme, en réponse à la demande de l’utilisateur, le package de débogage instancie le Gestionnaire de session de débogage (SDM) et lui passe la liste de DEs sélectionné.Programmatically, in response to the user request, the debug package instantiates the session debug manager (SDM) and passes the list of selected DEs to it. En même temps que la liste, le package de débogage transmet le SDM un IDebugEventCallback2 interface.Along with the list, the debug package passes the SDM an IDebugEventCallback2 interface. Le package de débogage transmet la liste de pour le processus sélectionné en appelant IDebugProcess2::Attach.The debug package passes the list of DEs to the selected process by calling IDebugProcess2::Attach. Le SDM appelle ensuite IDebugProcess2::EnumPrograms sur le port pour énumérer les programmes en cours d’exécution dans le processus.The SDM then calls IDebugProcess2::EnumPrograms on the port to enumerate the programs running in the process.

    À ce stade, chaque moteur de débogage est attaché à un programme exactement comme indiqué dans attachement après un lancement, avec deux exceptions.From this point on, each debug engine is attached to a program exactly as detailed in Attaching after a launch, with two exceptions.

    Pour plus d’efficacité, DEs, qui sont implémentées pour partager un espace d’adressage avec le SDM sont regroupés afin que chaque dé a un ensemble de programmes, il s’attache à.For efficiency, DEs that are implemented to share an address space with the SDM are grouped so that each DE has a set of programs it will attach to. Dans ce cas, IDebugProcess2 appels IDebugEngine2::Attach et transmet un tableau des programmes à attacher à.In this case, IDebugProcess2 calls IDebugEngine2::Attach and passes it an array of programs to attach to.

    La seconde exception est que les événements de démarrage envoyés par un D’attachement à un programme qui est déjà en cours d’exécution n’incluent pas généralement l’événement de point d’entrée.The second exception is that the startup events sent by a DE attaching to a program that is already running do not typically include the entry point event.

Voir aussiSee also

Envoi d’événements de démarrage après un lancement Sending startup events after a launch
Tâches de débogageDebugging tasks