Déboguer un ou plusieurs processus dans Visual Studio
Voici comment démarrer les processus de débogage, basculer d'un processus à un autre, arrêter et continuer l'exécution, parcourir la source, arrêter le débogage et mettre fin ou se détacher d'un processus.
Sommaire
Configurer le comportement d'exécution de plusieurs processus
Rechercher les fichiers sources et de symboles (.pdb)
Démarrer plusieurs processus d'une solution VS, attacher à un processus, démarrer automatiquement un processus dans le débogueur
Basculer les processus, arrêter et poursuivre l'exécution, accéder à la source
Arrêter le débogage, le terminer ou le détacher des processus
Configurer le comportement d'exécution de plusieurs processus
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. Par exemple, lorsqu'un processus est interrompu à un point d'arrêt, l'exécution de tous les autres processus est également interrompu. Vous pouvez modifier ce comportement par défaut pour mieux contrôler les cibles des commandes d'exécution.
Dans le menu Déboguer, choisissez Options et paramètres.
Sur la page Débogage, Général, désactivez la case à cocher Arrêter tous les processus lorsqu'un processus s'arrête.
Sommaire
Rechercher les fichiers sources et de symboles (.pdb)
Pour parcourir le code source d'un processus, le débogueur doit accéder aux fichiers sources et aux fichiers de symboles du processus. Consultez Spécifiez les fichiers de symbole (.pdb) et les fichiers source dans le débogueur Visual Studio..
Si vous ne pouvez pas accéder aux fichiers pour un processus, vous pouvez naviguer en utilisant la fenêtre Code Machine. Consultez Comment : utiliser la fenêtre Code Machine.
Sommaire
Démarrer plusieurs processus d'une solution VS, attacher à un processus, démarrer automatiquement un processus dans le débogueur
- Démarrer le débogage de processus multiples dans une solution Visual Studio • Modifier le projet de démarrage • Exécuter un projet spécifique dans une solution • Exécuter plusieurs projets dans une solution • Attacher à un processus • Démarrer automatiquement un processus du débogueur
Notes
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.Pour déboguer un processus enfant :
-
Effectuez un attachement au processus enfant après son démarrage.
ou
-
Configurez Windows pour démarrer automatiquement le processus enfant dans une nouvelle instance du débogueur.
Démarrer plusieurs processus de débogage dans une solution Visual Studio
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.
Modifier le projet de démarrage
Pour modifier le projet de démarrage d'une solution, sélectionnez le projet dans l'Explorateur de solutions, puis choisissez Définir comme projet de démarrage dans le menu contextuel.
Exécuter un projet spécifique dans une 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. Vous pouvez ensuite sélectionner Démarrer une nouvelle instance ou Pas à pas détaillé dans la nouvelle instance.
Sommaire
Démarrer plusieurs projets dans une solution
Dans l'Explorateur de solutions, sélectionnez la solution puis, dans le menu contextuel, sélectionnez Propriétés.
Sélectionnez Propriétés communes, Projet de démarrage dans la boîte de dialogue Propriétés.
Pour chaque projet à modifier, choisissez Démarrer, Exécuter sans débogage ou Aucun.
Sommaire
Attacher à un processus
Le débogueur peut également s'attacher aux programmes qui s'exécutent dans des processus en dehors de Visual Studio, notamment les programmes qui s'exécutent sur un périphérique distant. 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. 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.
Pour plus d'informations, consultez Attacher aux processus en cours d'exécution avec le débogueur Visual Studio.
Attacher à un processus qui s'exécute sur votre ordinateur local
Sélectionnez Déboguer, Attacher au processus. Dans la boîte de dialogue Attacher au processus, sélectionnez le processus dans la liste Processus disponibles, puis choisissez Attacher.
Sommaire
Démarrer automatiquement un processus du débogueur
Il peut être utile de déboguer le code de démarrage d'un programme lancé par un autre processus. C'est le cas des services et des actions d'installation personnalisée. Dans ces scénarios, il est possible de demander un lancement du débogueur et sa connexion automatique au démarrage de l'application.
Démarrez l'Éditeur du Registre (regedit.exe).
Accédez au dossier HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Image File Execution Options.
Sélectionnez le dossier de l'application à démarrer dans le débogueur.
Si le nom de l'application n'est pas répertorié comme dossier enfant, sélectionnez Options d'exécution de fichier image puis Nouveau, Clé dans le menu contextuel. Sélectionnez la nouvelle clé, choisissez Renommer dans le menu contextuel, puis entrez le nom de l'application.
Dans le menu contextuel du dossier d'application, choisissez Nouveau, Valeur de chaîne.
Modifiez le nom de la nouvelle valeur de New Value en débogueur.
Dans le menu contextuel de l'entrée du débogueur, choisissez Modifier.
Dans la boîte de dialogue Modification de la chaîne, tapez vsjitdebugger.exe dans la zone Données de la valeur.
Sommaire
Basculer les processus, arrêter et poursuivre l'exécution, accéder à la source
- Basculer entre les processus • Commandes Arrêter, Exécuter pas à pas, Continuer
Basculer entre les processus
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é. Vous pouvez définir le processus actif ou actuel dans la barre d'outils Emplacement de débogage ou dans la fenêtre Processus. Pour basculer entre les processus, les deux processus doivent être en mode arrêt.
Pour définir le processus en cours
Dans la barre d'outils Emplacement de débogage, choisissez Processus pour afficher la zone de liste Processus. Sélectionnez le processus que vous souhaitez désigner comme processus actuel.
Si la barre d'outils Emplacement de débogage n'est pas visible, sélectionnez Outils, Personnaliser. Sous l'onglet Barres d'outils, choisissez Emplacement de débogage.
Ouvrez la fenêtre Processus (raccourci Ctrl+Alt+Z), recherchez le processus que vous souhaitez définir comme processus actuel et double-cliquez dessus.
Le processus actuel est marqué par une flèche jaune.
Basculer vers un projet en fait le processus en cours du débogage. 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.
Basculer les processus, arrêter et poursuivre l'exécution, accéder à la source
Sommaire
Commandes Arrêter, Exécuter pas à pas, Continuer
Notes
Par défaut, les commandes de débogage break, continue et step affectent tous les processus en cours de débogage.Pour modifier ce comportement, consultez Configurer le comportement d'exécution de plusieurs processus
Commande |
Arrêter tous les processus lorsqu'un processus s'arrête Activé (valeur par défaut) |
Arrêter tous les processus lorsqu'un processus s'arrête Effacé |
MenuDéboguer :
|
Tous les processus s'arrêtent. |
Tous les processus s'arrêtent. |
MenuDéboguer :
|
Tout les processus reprennent. |
Tous les processus suspendus reprennent. |
MenuDéboguer :
|
Tous les processus s'exécutent pendant les étapes de processus actuelles. Puis, tous les processus s'arrêtent. |
Étapes de processus actuel. Les processus suspendus reprennent. Les processus en cours d'exécution se poursuivent. |
MenuDéboguer :
|
N/A |
Étapes de processus actuel. D'autres processus conservent leur état existant (Suspendu ou En cours d'exécution). |
Fenêtre source
|
Tous les processus s'arrêtent. |
Seul le processus de fenêtre source est rompu. |
Menu contextuel de la fenêtre source :
La fenêtre source doit figurer dans le processus actuel. |
Tous les processus s'exécutent pendant que le processus de fenêtre source s'exécute jusqu'au curseur puis s'arrête. Puis, tous les autres processus s'arrêtent. |
Le processus de fenêtre source s'exécute sur le curseur. D'autres processus conservent leur état existant (Suspendu ou En cours d'exécution). |
Menu contextuel de la fenêtreProcessus :
|
N/A |
Le processus sélectionné s'interrompt. D'autres processus conservent leur état existant (Suspendu ou En cours d'exécution). |
Menu contextuel de la fenêtreProcessus :
|
N/A |
Le processus sélectionné reprend. D'autres processus conservent leur état existant (Suspendu ou En cours d'exécution). |
Basculer les processus, arrêter et poursuivre l'exécution, accéder à la source
Sommaire
Arrêter le débogage, le terminer ou le détacher des processus
- Commandes Arrêter, Terminer et Détacher
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 se termine ou se détache de tous les processus selon la façon dont le processus a été ouvert dans le débogueur :
Si le processus actuel a été lancé dans le débogueur, ce processus serait terminé.
Si vous avez attaché le débogueur au processus actuel, le débogueur se détache du processus et le conserve.
Par exemple, si vous commencez à déboguer un processus à partir d'une solution Visual Studio, effectuez un attachement à un autre processus qui s'exécute déjà, puis choisissez Arrêter le débogage, la session de débogage se termine, le processus qui a été démarré dans Visual Studio est terminé, tandis que le processus que vous avez attaché est autorisé à s'exécuter. Vous pouvez utiliser les procédures suivantes pour contrôler la façon dont vous arrêtez le débogage.
Notes
L'option Arrêter tous les processus lorsqu'un processus s'arrête n'affecte pas l'arrêt du débogage ou l'arrêt et le détachement des processus.
Pour modifier la façon dont l'arrêt du débogage affecte un processus individuel
- Ouvrez la fenêtre Processus (raccourci Ctrl+Alt+Z). Sélectionnez un processus puis activez ou désactivez la case à cocher Détacher lorsque le débogage est arrêté.
Commandes Arrêter, Terminer et Détacher
Commande |
Description |
MenuDéboguer :
|
Sauf si le comportement est modifié par l'option Détacher lorsque le débogage est arrêté dans la fenêtre Processus :
|
MenuDéboguer :
|
Tous les processus sont terminés. |
MenuDéboguer :
|
Le débogueur se détache de tous les processus. |
Menu contextuel de la fenêtreProcessus :
|
Le débogueur se détache du processus sélectionné. D'autres processus conservent leur état existant (Suspendu ou En cours d'exécution). |
Menu contextuel de la fenêtreProcessus :
|
Le processus sélectionné est terminé. D'autres processus conservent leur état existant (Suspendu ou En cours d'exécution). |
Menu contextuel de la fenêtreProcessus :
|
Bascule le comportement de Déboguer, Arrêter le débogage pour le processus sélectionné :
|
Arrêter le débogage, le terminer ou le détacher des processus
Sommaire
Voir aussi
Concepts
Démarrer, Pas à pas principal, Exécuter du code et Arrêter le débogage dans Visual Studio
Débogage just-in-time dans Visual Studio
Autres ressources
Spécifiez les fichiers de symbole (.pdb) et les fichiers source dans le débogueur Visual Studio.
Attacher aux processus en cours d'exécution avec le débogueur Visual Studio