Contrôle de l’exécutionControl of Execution

Le moteur de débogage (DE) envoie généralement un des événements suivants en tant que le dernier événement de démarrage :The debug engine (DE) typically sends one of the following events as the last startup event:

  • L’événement de point d’entrée, si l’attachement à un programme lancé récemmentThe entry point event, if attaching to a newly launched program

  • L’événement complete charge, si l’attachement à un programme qui est déjà en cours d’exécutionThe load complete event, if attaching to a program that is already running

    Ces deux événements sont événements d’arrêt, c'est-à-dire que le D’attend une réponse de l’utilisateur au moyen de l’IDE.Both these events are stopping events, meaning that the DE waits for a response from the user by means of the IDE. Pour plus d’informations, consultez Modes opérationnels.For more information, see Operational Modes.

Événement d’arrêtStopping Event

Quand un événement d’arrêt est envoyé à la session de débogage :When a stopping event is sent to the debug session:

  1. Le programme et le thread qui contiennent le pointeur d’instruction en cours peuvent être obtenus à partir de l’interface d’événement.The program and thread that contain the current instruction pointer can be obtained from the event interface.

  2. L’IDE détermine le fichier de code source en cours et de la position, qu’elle affiche en surbrillance dans l’éditeur.The IDE determines the current source code file and position, which it displays highlighted in the editor.

  3. La session de débogage répond généralement à ce premier événement d’arrêt en appelant du programme continuer (méthode).The debug session typically responds to this first stopping event by calling the program's Continue method.

  4. Ensuite, le programme s’exécute jusqu'à ce qu’il rencontre une condition d’arrêt, telles que l’atteinte d’un point d’arrêt, dans lequel cas le DE envoie un événement de point d’arrêt à la session de débogage.The program then runs until it encounters a stopping condition, such as hitting a breakpoint, in which case the DE sends a breakpoint event to the debug session. L’événement de point d’arrêt est un événement d’arrêt et la DE nouveau attend une réponse de l’utilisateur.The breakpoint event is a stopping event, and the DE again waits for a user response.

  5. Si l’utilisateur choisit de pas à pas détaillé, plus ou en dehors d’une fonction, l’IDE vous invite à entrer la session de débogage pour appeler le programme Step méthode, en lui passant l’unité d’étape (instruction, l’instruction ou ligne) et le type d’étape : autrement dit, s’il faut pas à pas détaillé, plus , ou en dehors de la fonction.If the user elects to step into, over, or out of a function, the IDE prompts the debug session to call the program's Step method, passing it the unit of step (instruction, statement, or line) and the kind of step—that is, whether to step into, over, or out of the function. Lorsque l’étape est terminée, le D’envoie un événement complete étape à la session de débogage, qui est un événement d’arrêt.When the step is complete, the DE sends a step complete event to the debug session, which is a stopping event.

    - ou --or-

    Si l’utilisateur choisit de continuer l’exécution à partir du pointeur d’instruction en cours, l’IDE vous invite à entrer la session de débogage pour appeler le programme Execute (méthode).If the user elects to continue executing from the current instruction pointer, the IDE prompts the debug session to call the program's Execute method. Le programme reprend l’exécution jusqu'à ce qu’il rencontre la condition d’arrêt suivante.The program resumes execution until it encounters the next stopping condition.

    - ou --or-

    Si la session de débogage est pour ignorer un événement d’arrêt particulier, la session de débogage appelle du programme continuer (méthode).If the debug session is to ignore a particular stopping event, the debug session calls the program's Continue method. Si le programme a été pas à pas détaillé, principal ou en dehors d’une fonction lorsqu’il a rencontré la condition d’arrêt, il continue de l’étape.If the program was stepping into, over, or out of a function when it encountered the stopping condition, then it continues the step.

    Par programme, lorsque le DE rencontre une condition d’arrêt, il envoie des événements d’arrêt, tels que IDebugLoadCompleteEvent2 ou IDebugEntryPointEvent2 pour le Gestionnaire de session de débogage (SDM) à l’aide de un IDebugEventCallback2 interface.Programmatically, when the DE encounters a stopping condition, it sends such stopping events as IDebugLoadCompleteEvent2 or IDebugEntryPointEvent2 to the session debug manager (SDM) by means of an IDebugEventCallback2 interface. Les étapes DE la IDebugProgram2 et IDebugThread2 interfaces qui représentent le programme et le thread qui contient le pointeur d’instruction en cours.The DE passes the IDebugProgram2 and IDebugThread2 interfaces that represent the program and the thread containing the current instruction pointer. Les appels SDM IDebugThread2::EnumFrameInfo pour obtenir le frame de pile supérieur et les appels IDebugStackFrame2::GetDocumentContext pour obtenir le contexte de document associé à l’instruction en cours pointeur.The SDM calls IDebugThread2::EnumFrameInfo to get the top stack frame and calls IDebugStackFrame2::GetDocumentContext to get the document context associated with the current instruction pointer. Ce contexte de document est généralement une source code nom, ligne et colonne numéro de fichier.This document context is typically a source code file name, line, and column number. L’IDE utilise pour mettre en surbrillance le code source qui contient le pointeur d’instruction en cours.The IDE uses these to highlight the source code that contains the current instruction pointer.

    Le SDM répond généralement à ce premier événement d’arrêt en appelant IDebugProgram2::Continue.The SDM typically responds to this first stopping event by calling IDebugProgram2::Continue. Le programme s’exécute puis jusqu'à ce qu’il rencontre une condition d’arrêt, telles que l’atteinte d’un point d’arrêt, dans lequel cas le DE envoie un IDebugBreakpointEvent2 Interface pour le SDM.The program then runs until it encounters a stopping condition, such as hitting a breakpoint, in which case the DE sends an IDebugBreakpointEvent2 Interface to the SDM. L’événement de point d’arrêt est un événement d’arrêt et la DE nouveau attend une réponse de l’utilisateur.The breakpoint event is a stopping event, and the DE again waits for a user response.

    Si l’utilisateur choisit de pas à pas détaillé, plus ou en dehors d’une fonction, l’IDE vous invite à entrer le SDM pour appeler IDebugProgram2::Step, en lui passant le STEPUNIT (instruction, l’instruction ou ligne) et le STEPKIND, autrement dit, s’il faut pas à pas détaillé, principal ou en dehors de la fonction.If the user elects to step into, over, or out of a function, the IDE prompts the SDM to call IDebugProgram2::Step, passing it the STEPUNIT (instruction, statement, or line) and the STEPKIND, that is, whether to step into, over, or out of the function. Lorsque l’étape est terminée, le D’envoie un IDebugStepCompleteEvent2 interface SDM, ce qui est un événement d’arrêt.When the step is complete, the DE sends an IDebugStepCompleteEvent2 interface to the SDM, which is a stopping event.

    Si l’utilisateur choisit de continuer l’exécution à partir du pointeur d’instruction en cours, l’IDE vous demande le SDM pour appeler IDebugProgram2::Execute.If the user elects to continue executing from the current instruction pointer, the IDE asks the SDM to call IDebugProgram2::Execute. Le programme reprend l’exécution jusqu'à ce qu’il rencontre la condition d’arrêt suivante.The program resumes execution until it encounters the next stopping condition.

    Si le package de débogage est pour ignorer un événement d’arrêt particulier, le package de débogage appelle le SDM, qui appelle IDebugProgram2::Continue.If the debug package is to ignore a particular stopping event, the debug package calls the SDM, which calls IDebugProgram2::Continue. Si le programme a été pas à pas détaillé, principal ou en dehors d’une fonction lorsqu’il a rencontré la condition d’arrêt, il continue de l’étape.If the program was stepping into, over, or out of a function when it encountered the stopping condition, then it continues the step. Cela implique que le programme conserve un état d’exécution pas à pas, de sorte qu’il sache comment continuer.This implies that the program maintains a stepping state, so that it knows how to continue.

    Les appels à la SDM Step, Execute, et continuer sont asynchrone, ce qui signifie que le SDM attend l’appel doit retourner rapidement.The calls the SDM makes to Step, Execute, and Continue are asynchronous, which means that the SDM expects the call to return quickly. Si le D’envoie le SDM un événement d’arrêt sur le même thread avant Step, Execute, ou continuer retourne, le SDM se bloque.If the DE sends the SDM a stopping event on the same thread before Step, Execute, or Continue returns, the SDM hangs.

Voir aussiSee Also

Tâches de débogageDebugging Tasks