Partager via


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.

  1. Dans le menu Déboguer, choisissez Options et paramètres.

  2. Sur la page Débogage, Général, désactivez la case à cocher Arrêter tous les processus lorsqu'un processus s'arrête.

Retour au débutSommaire

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.

Retour au débutSommaire

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.

Modification du type de démarrage pour un projet

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.

Retour au débutDémarrer plusieurs processus d'une solution VS, attacher à un processus, démarrer automatiquement un processus dans le débogueur

Retour au débutSommaire

Démarrer plusieurs projets dans une solution

  1. Dans l'Explorateur de solutions, sélectionnez la solution puis, dans le menu contextuel, sélectionnez Propriétés.

  2. Sélectionnez Propriétés communes, Projet de démarrage dans la boîte de dialogue Propriétés.

  3. Pour chaque projet à modifier, choisissez Démarrer, Exécuter sans débogage ou Aucun.

Retour au débutDémarrer plusieurs processus d'une solution VS, attacher à un processus, démarrer automatiquement un processus dans le débogueur

Retour au débutSommaire

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.

Boîte de dialogue Attacher au processus

Retour au débutSommaire

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.

  1. Démarrez l'Éditeur du Registre (regedit.exe).

  2. Accédez au dossier HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Image File Execution Options.

  3. 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.

  4. Dans le menu contextuel du dossier d'application, choisissez Nouveau, Valeur de chaîne.

  5. Modifiez le nom de la nouvelle valeur de New Value en débogueur.

  6. Dans le menu contextuel de l'entrée du débogueur, choisissez Modifier.

  7. Dans la boîte de dialogue Modification de la chaîne, tapez vsjitdebugger.exe dans la zone Données de la valeur.

    Boîte de dialogue Modification de la chaîne

Entrée de démarrage du débogueur automatique dans regedit.exe

Retour au débutSommaire

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.

    Basculer entre processus

    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.

    Fenêtre Processus

    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.

Retour au débutBasculer les processus, arrêter et poursuivre l'exécution, accéder à la source

Retour au débutSommaire

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 :

  • Interrompre tout

Tous les processus s'arrêtent.

Tous les processus s'arrêtent.

MenuDéboguer :

  • Continue

Tout les processus reprennent.

Tous les processus suspendus reprennent.

MenuDéboguer :

  • Pas à pas détaillé

  • Pas à pas principal

  • Pas à pas sortant

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 :

  • Pas à pas détaillé du processus actuel

  • Pas à pas principal du processus actuel

  • Pas à pas sortant du processus actuel

N/A

Étapes de processus actuel.

D'autres processus conservent leur état existant (Suspendu ou En cours d'exécution).

Fenêtre source

  • Point d'arrêt

Tous les processus s'arrêtent.

Seul le processus de fenêtre source est rompu.

Menu contextuel de la fenêtre source :

  • Exécuter jusqu'au curseur

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 :

  • Arrêter le processus

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 :

  • Continuer le processus

N/A

Le processus sélectionné reprend.

D'autres processus conservent leur état existant (Suspendu ou En cours d'exécution).

Retour au débutBasculer les processus, arrêter et poursuivre l'exécution, accéder à la source

Retour au débutSommaire

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 :

  • Arrêter le débogage

Sauf si le comportement est modifié par l'option Détacher lorsque le débogage est arrêté dans la fenêtre Processus :

  1. Les processus démarrés par le débogueur sont terminés.

  2. Les processus attachés sont détachés du débogueur.

MenuDéboguer :

  • Tout arrêter

Tous les processus sont terminés.

MenuDéboguer :

  • Détacher tout

Le débogueur se détache de tous les processus.

Menu contextuel de la fenêtreProcessus :

  • Détacher le processus

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 :

  • Terminer le processus

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 :

  • Détacher lorsque le débogage s'arrête

Bascule le comportement de Déboguer, Arrêter le débogage pour le processus sélectionné :

  • Activé : le débogueur se détache du processus sélectionné.

  • Effacé : le processus est terminé.

Retour au débutArrêter le débogage, le terminer ou le détacher des processus

Retour au débutSommaire

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

Déboguer les applications multithread dans Visual Studio