Contrôle de l’exécutionControl of execution

Le moteur de débogage (dé) 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, ce qui signifie que l’Allemagne 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 les modes de fonctionnement.For more information, see Operational modes.

Arrêt de l’événementStopping 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 actuel et la position, qui s’affiche en surbrillance dans l’éditeur.The IDE determines the current source code file and position, which it displays as highlighted in the editor.

  3. La session de débogage répond généralement à ce premier événement d’arrêt en appelant le 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, comme atteindre un point d’arrêt.The program then runs until it encounters a stopping condition, such as hitting a breakpoint. Dans ce cas, le D’envoie un événement de point d’arrêt à la session de débogage.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 l’Allemagne attend de nouveau 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).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. L’IDE transmet ensuite l’unité d’étape (instruction, instruction ou ligne) et le type d’étape (que ce soit à l’étape dans, au-dessus ou en dehors de la fonction).The IDE then passes the unit of step (instruction, statement, or line) and the type of step (whether to step into, over, or out of the function). Lorsque l’étape est terminée, le D’envoie un événement de fin d’é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 à s’exécuter à 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 son 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 consiste à ignorer un événement d’arrêt particulier, la session de débogage appelle le 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é dans, au-dessus ou en dehors d’une fonction lorsqu’il a rencontré la condition d’arrêt, puis il continue 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, lors de la DE rencontre une condition d’arrêt, il envoie des événements d’arrêt, tels que IDebugLoadCompleteEvent2 ou IDebugEntryPointEvent2 avec le Gestionnaire de débogage de session (SDM) par le biais 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. Le passe 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 actuelle 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 un fichier de code source qu’un nombre nom, ligne et colonne.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, comme atteindre 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 l’Allemagne attend de nouveau 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.If the user elects to step into, over, or out of a function, the IDE prompts the SDM to call IDebugProgram2::Step. L’IDE puis transmet le STEPUNIT (instruction, instruction ou ligne) et le STEPKIND, autrement dit, s’il faut passer dans, sur ou en dehors de la fonction.The IDE then passes 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, l’Allemagne envoie un IDebugStepCompleteEvent2 interface pour le SDM, 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 à s’exécuter à 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 son 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 consiste à 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é dans, au-dessus 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, it continues the step. Cela implique que le programme maintient un état d’exécution pas à pas, afin qu’il sache comment continuer.This implies that the program maintains a stepping state, so that it knows how to continue.

    Les appels au 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

Déboguer des tâchesDebug tasks