Déboguer plusieurs processusDebug Multiple Processes

Voici comment démarrer le processus de débogage, basculer entre les processus, arrêter et poursuivre l’exécution, parcourir la source, arrêter le débogage et le terminer ou détacher d’un processus.Here's how to start debugging processes, switch between processes, break and continue execution, step through source, stop debugging, and terminate or detach from processes.

Configurer le comportement d’exécution de plusieurs processusConfigure the execution behavior of multiple processes

Par défaut, lorsque plusieurs processus s'exécutent dans le débogueur, les commandes de saut, de progression et d'arrêt du débogueur affectent généralement tous les processus.By default, when multiple processes are running in the debugger, the breaking, stepping, and stopping debugger commands usually affect all the processes. Par exemple, lorsqu'un processus est interrompu à un point d'arrêt, l'exécution de tous les autres processus est également interrompu.For example, when one process is suspended at a breakpoint, the execution of all other processes is also suspended. Vous pouvez modifier ce comportement par défaut pour mieux contrôler les cibles des commandes d'exécution.You can change this default behavior to gain more control over the targets of execution commands.

  1. Cliquez sur Déboguer > Options et paramètres.Click Debug > Options and Settings.

  2. Sur le débogage, général page, désactivez le arrêter tous les processus lorsqu’un processus s’arrête case à cocher.On the Debugging, General page, clear the Break all processes when one process breaks check box.

Rechercher les sources et symboles (fichiers .pdb)Find the source and symbol (.pdb) files

Pour parcourir le code source d'un processus, le débogueur doit accéder aux fichiers sources et aux fichiers de symboles du processus.To navigate the source code of a process, the debugger needs access to the source files and symbol files of the process. Consultez Spécifier les fichiers de symbole (.pdb) et les fichiers sources.See Specify Symbol (.pdb) and Source Files.

Si vous ne pouvez pas accéder aux fichiers d’un processus, vous pouvez accéder à l’aide de la fenêtre code machine.If you can't access the files for a process, you can navigate by using the Disassembly window. Consultez Comment : utiliser la fenêtre code machineSee How to: Use the Disassembly Window

Démarrer plusieurs processus dans une solution VS, attacher à un processus, démarrer automatiquement un processus dans le débogueurStart multiple processes in a VS solution, attach to a process, automatically start a process in the debugger

Note

Le débogueur n'effectue pas un attachement automatique à un processus enfant démarré par un processus débogué, même si le projet enfant se trouve dans la même solution.The debugger does not automatically attach to a child process that is started by a debugged process, even if the child project is in the same solution. Pour déboguer un processus enfant :To debug a child process:

  • Effectuez un attachement au processus enfant après son démarrage.Attach to the child process after it has been started.

    - ou --or-

    • Configurez Windows pour démarrer automatiquement le processus enfant dans une nouvelle instance du débogueur.Configure Windows to automatically start the child process in a new instance of the debugger.

Démarrer le débogage de plusieurs processus dans une solution Visual StudioStart debugging multiple processes in a Visual Studio solution

Lorsque vous disposez de plusieurs projets dans une solution Visual Studio qui peuvent s'exécuter indépendamment (projets qui s'exécutent dans des processus distincts), vous pouvez sélectionner les projets que le débogueur démarre.When you have more than one project in a Visual Studio solution that can run independently (projects that run in separate processes), you can select which projects the debugger starts.

Modification du type de démarrage pour un projetChanging the startup type for a project

Modifier le projet de démarrageChange the startup project

Pour modifier le projet de démarrage pour une solution, sélectionnez le projet dans l’Explorateur de solutions, puis choisissez définir comme projet de démarrage dans le menu contextuel.To change the startup project for a solution, select the project in Solution Explorer and then choose Set as Startup Project from the context menu.

Démarrer un projet spécifique dans une solutionStart a specific project in a solution

Pour démarrer un projet pour une solution sans modifier le projet de démarrage par défaut, sélectionnez le projet dans l’Explorateur de solutions, puis choisissez déboguer dans le menu contextuel.To start a project for a solution without changing the default startup project, select the project in Solution Explorer and then choose Debug from the context menu. Vous pouvez ensuite choisir démarrer une nouvelle instance ou pas à pas détaillé de nouvelle instance.You can then choose Start new instance or Step Into new instance.

Retour au début démarrer plusieurs processus dans une solution VS, attacher à un processus, démarrer automatiquement un processus dans le débogueurBack to top Start multiple processes in a VS solution, attach to a process, automatically start a process in the debugger

Démarrer plusieurs projets dans une solutionStart multiple projects in a solution

  1. Sélectionnez la solution dans l’Explorateur de solutions, puis choisissez propriétés dans le menu contextuel.Select the solution in Solution Explorer and then choose Properties on the context menu.

  2. Sélectionnez propriétés communes, projet de démarrage sur le propriétés boîte de dialogue.Select Common Properties, Startup Project on the Properties dialog box.

  3. Pour chaque projet que vous souhaitez modifier, choisissez Démarrer, démarrer sans débogage, ou aucun.For each project that you want to change, choose either Start, Start without debugging, or None.

    Retour au début démarrer plusieurs processus dans une solution VS, attacher à un processus, démarrer automatiquement un processus dans le débogueurBack to top Start multiple processes in a VS solution, attach to a process, automatically start a process in the debugger

Attacher à un processusAttach to a process

Le débogueur peut également attacher aux programmes qui sont exécutent dans le processus en dehors de Visual Studio, y compris les programmes qui sont exécutent sur un périphérique distant.The debugger can also to attach to programs that are running in processes outside of Visual Studio, including programs that are running on a remote device. Une fois l'attachement au programme effectué, vous pouvez utiliser les commandes d'exécution du débogueur, inspecter l'état du programme, et ainsi de suite.After you attach to a program, you can use debugger execution commands, inspect the program state, and so on. Les possibilités d'inspection peuvent dépendre de la présence d'informations de débogage dans le programme, de vos droits d'accès au code source de ce dernier et du suivi des informations de débogage par le compilateur JIT Common Language Runtime.Your ability to inspect the program might be limited, depending on whether the program was built with debug information and whether you have access to the program's source code, and whether the common language runtime JIT compiler is tracking debug information.

Consultez attacher aux processus en cours d’exécution pour plus d’informations.See Attach to Running Processes for more information.

Attacher à un processus qui s’exécute sur votre ordinateur localAttach to a process that is running on your local machine

Cliquez sur Déboguer > Attacher au processus.Click Debug > Attach to Process. Sur le attacher au processus boîte de dialogue, sélectionnez le processus à partir de la processus disponibles liste, puis choisissez attacher.On the Attach to Process dialog box, select the process from the Available Processes list, and then choose Attach.

Attacher à la boîte de dialogue traiterAttach to Process dialog box

Démarrer automatiquement un processus dans le débogueurAutomatically start a process in the debugger

Il peut être utile de déboguer le code de démarrage d'un programme lancé par un autre processus.Sometimes, you might need to debug the startup code for a program that is launched by another process. C'est le cas des services et des actions d'installation personnalisée.Examples include services and custom setup actions. Dans ces scénarios, il est possible de demander un lancement du débogueur et sa connexion automatique au démarrage de l'application.In these scenarios, you can have the debugger launch and automatically attach when your application starts.

  1. Démarrez l’Éditeur du Registre (regedit.exe).Start the Registry Editor (regedit.exe).

  2. Accédez à la HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Image File Execution Options dossier.Navigate to the HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Image File Execution Options folder.

  3. Sélectionnez le dossier de l’application à démarrer dans le débogueur.Select the folder of the app that you want to start in the debugger.

    Si le nom de l’application n’est pas répertorié comme un dossier enfant, sélectionnez Image File Execution Options , puis New, clé dans le menu contextuel.If the name of the app is not listed as a child folder, select Image File Execution Options and then choose New, Key on the context menu. Sélectionnez la nouvelle clé, choisissez renommer dans le menu contextuel, puis entrez le nom de l’application.Select the new key, choose Rename on the shortcut menu, and then enter the name of the app.

  4. Dans le menu contextuel du dossier d’application, choisissez New, valeur de chaîne.On the context menu of the app folder, choose New, String Value.

  5. Modifier le nom de la nouvelle valeur à partir de nouvelle valeur à debugger.Change the name of the new value from New Value to debugger.

  6. Dans le menu contextuel de l’entrée du débogueur, choisissez modifier.On the context menu of the debugger entry, choose Modify.

  7. Dans la boîte de dialogue Modifier la chaîne, tapez vsjitdebugger.exe dans le données de la valeur boîte.On the Edit String dialog box, type vsjitdebugger.exe in the Value data box.

    Modifier la boîte de dialogue chaîneEdit String dialog box

    Entrée de démarrage du débogueur automatique dans regedit.exeAutomatic debugger start entry in regedit.exe

Basculer les processus, arrêter et poursuivre l’exécution, accéder à la sourceSwitch processes, break and continue execution, step through source

Basculer entre les processusSwitch between processes

Pendant un débogage, vous pouvez attacher plusieurs processus à la fois, mais seul l'un d'entre eux est actif dans le débogueur à un moment donné.You can attach to multiple processes when you are debugging, but only one process is active in the debugger at any given time. Vous pouvez définir actif ou actuel processus dans la barre d’outils emplacement de débogage ou dans le processus fenêtre.You can set the active or current process in the Debug Location toolbar or in the Processes window. Pour basculer entre les processus, les deux processus doivent être en mode arrêt.To switch between processes, both processes must be in break mode.

Pour définir le processus actuelTo set the current process

  • Dans la barre d’outils emplacement de débogage, choisissez processus pour afficher le processus zone de liste.On the Debug Location toolbar, choose Process to view the Process list box. Sélectionnez le processus que vous souhaitez désigner comme processus actuel.Select the process that you want to designate as current process.

    Basculer entre les processusSwitch between processes

    Si le emplacement de débogage barre d’outils n’est pas visible, choisissez outils, personnaliser.If the Debug Location toolbar is not visible, choose Tools, Customize. Sur le barres d’outils , choisir emplacement de débogage.On the Toolbars tab, choose Debug Location.

  • Ouvrez le processus fenêtre (raccourci Ctrl + Alt + Z), recherchez le processus que vous souhaitez définir en tant que le processus en cours et double-cliquez dessus.Open the Processes window (shortcut Ctrl+Alt+Z), find the process that you want to set as the current process, and double-click it.

    Fenêtre processusProcesses window

    Le processus actuel est marqué par une flèche jaune.The current process is marked by a yellow arrow.

    Basculer vers un projet en fait le processus en cours du débogage.Switching to a project sets it the current process for debugging purposes. La fenêtre de débogueur que vous voyez affiche l'état du processus actuel, et toutes les commandes de progression n'affectent que le processus actuel.Any debugger window that you view will show the state for the current process, and all stepping commands affect only the current process.

    Retour au début basculer les processus, arrêter et poursuivre l’exécution, accéder à la sourceBack to top Switch processes, break and continue execution, step through source

Arrêter, l’étape et continue de commandesBreak, step, and continue commands

Note

Par défaut, les commandes de débogage break, continue et step affectent tous les processus en cours de débogage.By default, the break, continue and step debugger commands affect all processes that are being debugged. Pour modifier ce comportement, consultez configurer le comportement d’exécution de plusieurs processusTo change this behavior, see Configure the execution behavior of multiple processes

CommandeCommand Arrêter tous les processus lorsqu’un processus s’arrêteBreak all processes when one process breaks

Activé (valeur par défaut)Checked (Default)
Arrêter tous les processus lorsqu’un processus s’arrêteBreak all processes when one process breaks

EffacéCleared
Déboguer menu :Debug menu:

- Interrompre tout- Break All
Tous les processus s'arrêtent.All processes break. Tous les processus s'arrêtent.All processes break.
Déboguer menu :Debug menu:

- Continuer- Continue
Tout les processus reprennent.All processes resume. Tous les processus suspendus reprennent.All suspended processes resume.
Déboguer menu :Debug menu:

- Pas à pas détaillé- Step Into
- Pas à pas principal- Step Over
- Pas à pas sortant- Step Out
Tous les processus s'exécutent pendant les étapes de processus actuelles.All processes run while current process steps.

Puis, tous les processus s'arrêtent.Then all processes break.
Étapes de processus actuel.Current process steps.

Les processus suspendus reprennent.Suspended processes resume.

Les processus en cours d'exécution se poursuivent.Running processes continue.
Déboguer menu :Debug menu:

- Pas à pas détaillé des processus en cours- Step Into Current Process
- Pas à pas principal des processus en cours- Step Over Current Process
- Pas à pas sortant des processus en cours- Step Out Current Process
N/AN/A Étapes de processus actuel.Current process steps.

D'autres processus conservent leur état existant (Suspendu ou En cours d'exécution).Other processes maintain their existing state (suspended or running).
Fenêtre sourceSource window

- Point d’arrêt- Breakpoint
Tous les processus s'arrêtent.All processes break. Seul le processus de fenêtre source est rompu.Only source window process breaks.
Menu contextuel de la fenêtre source :Source window context menu:

- Exécuter jusqu’au curseur- Run to cursor

La fenêtre source doit figurer dans le processus actuel.The source window must be in the current process.
Tous les processus s'exécutent pendant que le processus de fenêtre source s'exécute jusqu'au curseur puis s'arrête.All processes run while source window process runs to cursor and then breaks.

Puis, tous les autres processus s'arrêtent.Then all other processes break.
Le processus de fenêtre source s'exécute sur le curseur.Source window process runs to cursor.

D'autres processus conservent leur état existant (Suspendu ou En cours d'exécution).Other processes maintain their existing state (suspended or running).
Processus menu contextuel de fenêtre :Processes window context menu:

- Arrêter le processus- Break Process
N/AN/A Le processus sélectionné s'interrompt.Selected process breaks.

D'autres processus conservent leur état existant (Suspendu ou En cours d'exécution).Other processes maintain their existing state (suspended or running).
Processus menu contextuel de fenêtre :Processes window context menu:

- Continuer le processus- Continue Process
N/AN/A Le processus sélectionné reprend.Selected process resumes.

D'autres processus conservent leur état existant (Suspendu ou En cours d'exécution).Other processes maintain their existing state (suspended or running).

Retour au début basculer les processus, arrêter et poursuivre l’exécution, accéder à la sourceBack to top Switch processes, break and continue execution, step through source

Arrêter le débogage, le terminer ou détacher des processusStop debugging, terminate or detach from processes

  • Arrêter, terminer et détacher des commandesStop, terminate, and detach commands

    Par défaut, lorsque vous choisissez déboguer, arrêter le débogage lorsque plusieurs processus sont ouverts dans le débogueur, le débogueur s’arrête ou se détache de tous les processus en fonction de la façon dont le processus a été ouvert dans le débogueur :By default, when you choose Debug, Stop Debugging when multiple processes are open in the debugger, the debugger terminates or detaches from all processes depending on how the process was opened in the debugger:

  • Si le processus actuel a été lancé dans le débogueur, ce processus serait terminé.If the current process was launched in the debugger, that process is terminated.

  • Si vous avez attaché le débogueur au processus actuel, le débogueur se détache du processus et le conserve.If you attached the debugger to the current process, the debugger detaches from the process and leaves the process running.

    Par exemple, si vous démarrez le débogage d’un processus à partir d’une solution Visual Studio, attachez à un autre processus est déjà en cours d’exécution, puis choisissez arrêter le débogage, la session de débogage se termine, le processus qui a été démarré dans Visual Studio se termine, tandis que le processus que vous avez attaché est laissé en cours d’exécution.For example, if you start debugging a process from a Visual Studio solution, attach to another process that is already running, and then choose Stop Debugging, the debugging session ends, the process that was started in Visual Studio is terminated, while the process that you attached is left running. Vous pouvez utiliser les procédures suivantes pour contrôler la façon dont vous arrêtez le débogage.You can use the following procedures to control the way that you stop debugging.

Note

Le arrêter tous les processus lorsqu’un processus s’arrête option n’affecte pas l’arrêt de débogage ou l’arrêt et détachement des processus.The Break all processes when one process breaks option does not affect stopping debugging or terminating and detaching from processes.

Pour modifier comment arrêter le débogage affecte un processus individuelTo change how Stop Debugging affects an individual process

  • Ouvrez le processus fenêtre (raccourci Ctrl + Alt + Z).Open the Processes window (shortcut Ctrl+Alt+Z). Sélectionnez un processus puis activez ou désactivez le détacher lorsque le débogage est arrêté case à cocher.Select a process and then select or clear the Detach when debugging stopped check box.

Arrêter, terminer et détacher des commandesStop, terminate, and detach commands

CommandeCommand DescriptionDescription
Déboguer menu :Debug menu:

- Arrêter le débogage- Stop Debugging
À moins que le comportement est modifié par processus fenêtre détacher lorsque le débogage s’arrête option :Unless the behavior is changed by Processes window Detach when debugging stops option:

1. Les processus démarrés par le débogueur sont terminés.1. Processes started by debugger are terminated.
2. Les processus attachés sont détachés du débogueur.2. Attached processes are detached from the debugger.
Déboguer menu :Debug menu:

- Tout arrêter- Terminate All
Tous les processus sont terminés.All processes are terminated.
Déboguer menu :Debug menu:

- Détacher tout- Detach All
Le débogueur se détache de tous les processus.The debugger detaches from all processes.
Processus menu contextuel de fenêtre :Processes window context menu:

- Détacher le processus- Detach Process
Le débogueur se détache du processus sélectionné.The debugger detaches from the selected process.

D'autres processus conservent leur état existant (Suspendu ou En cours d'exécution).Other processes maintain their existing state (suspended or running).
Processus menu contextuel de fenêtre :Processes window context menu:

- Terminer le processus- Terminate Process
Le processus sélectionné est terminé.The selected process is terminated.

D'autres processus conservent leur état existant (Suspendu ou En cours d'exécution).Other processes maintain their existing state (suspended or running).
Processus menu contextuel de fenêtre :Processes window context menu:

- Détacher lorsque le débogage s’arrête- Detach when debugging stops
Active ou désactive le comportement de déboguer, arrêter le débogage pour le processus sélectionné :Toggles the behavior of Debug, Stop Debugging for the selected process:

-Checked : Le débogueur se détache du processus.- Checked: The debugger detaches from the process.
-Désactivé : Le processus est terminé.- Cleared: The process is terminated.

Retour au début arrêter le débogage, le terminer ou détacher des processusBack to top Stop debugging, terminate or detach from processes

Voir aussiSee Also

Spécifier les symboles (.pdb) et les fichiers sources Specify Symbol (.pdb) and Source Files
Attacher au processus en cours d’exécution Attach to Running Processes
Naviguer dans le code avec le débogueur Navigating through Code with the Debugger
Débogage juste-à-temps Just-In-Time Debugging
Déboguer les Applications multithreadDebug Multithreaded Applications