Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Vous pouvez attacher le débogueur Visual Studio à un processus en cours d’exécution sur un ordinateur local ou distant. Une fois le processus en cours d’exécution, sélectionnez Attacher>au processus ou appuyez sur Ctrl+Alt+p dans Visual Studio, puis utilisez la boîte de dialogue Attacher au processus pour attacher le débogueur au processus.
Vous pouvez utiliser Attach to Process pour déboguer des applications en cours d’exécution sur des ordinateurs locaux ou distants, déboguer simultanément plusieurs processus, déboguer des applications qui n’ont pas été créées dans Visual Studio ou déboguer une application que vous n’avez pas démarrée à partir de Visual Studio avec le débogueur attaché. Par exemple, si vous exécutez une application sans le débogueur et que vous atteignez une exception, vous pouvez ensuite attacher le débogueur au processus exécutant l’application et commencer le débogage.
Conseil / Astuce
Vous ne savez pas si vous souhaitez utiliser Attach to Process pour votre scénario de débogage ? Consultez les scénarios de débogage courants.
Se connecter à un processus en cours d’exécution sur votre ordinateur local
Pour vous rattacher rapidement à un processus auquel vous avez attaché précédemment, consultez Reattacher à un processus.
À compter de Visual Studio 2022 version 17.10 Preview 2, la boîte de dialogue Attacher au processus a changé. Si vous avez besoin d’instructions correspondant à l’ancienne boîte de dialogue, basculez vers la vue Visual Studio 2019 (sélecteur de version supérieur gauche dans l’article).
Pour s'attacher à un processus sur votre ordinateur local :
Dans Visual Studio, sélectionnez Déboguer>attacher au processus (ou appuyez sur Ctrl Alt++P) pour ouvrir la boîte de dialogue Attacher au processus.
Définissez le type de connexion sur Local.
Dans la plupart des scénarios de débogage locaux, vous pouvez utiliser Local. Certains scénarios peuvent nécessiter un type de connexion différent. Pour plus d’informations, consultez d’autres sections de cet article ou scénarios de débogage courants.
Dans la liste processus disponibles , recherchez et sélectionnez le processus ou les processus auquel vous souhaitez vous attacher.
- Pour sélectionner rapidement un processus, tapez son nom ou sa première lettre dans la zone Processus de filtre .
- Si vous ne connaissez pas le nom du processus, parcourez la liste ou consultez les scénarios de débogage courants pour certains noms de processus courants.
- Utilisez le bouton Suivre la fenêtre pour activer la sélection d’une fenêtre sur votre ordinateur, qui définit le processus.
Conseil / Astuce
Les processus peuvent démarrer et s’arrêter en arrière-plan pendant que la boîte de dialogue Attacher au processus est ouverte, de sorte que la liste des processus en cours d’exécution n’est peut-être pas toujours en cours. Vous pouvez sélectionner Actualiser à tout moment pour afficher la liste active.
Dans le champ Type de code, vérifiez que le type de code que vous envisagez de déboguer est répertorié.
Le paramètre automatique par défaut fonctionne pour la plupart des types d’applications, mais vous pouvez sélectionner un type de code spécifique pour spécifier manuellement le type de débogueur.
Sélectionnez Joindre.
Conseil / Astuce
Dans le scénario où vous avez plusieurs processus identiques, utilisez la colonne ligne de commande ou les détails du processus w3wp de la colonne Titre pour identifier le processus approprié.
Note
Vous pouvez être attaché à plusieurs applications pour le débogage, mais une seule application est active dans le débogueur à la fois. Vous pouvez définir l’application active dans la barre d’outils Emplacement du débogage de Visual Studio ou la fenêtre Processus .
Se connecter à un processus sur un ordinateur distant
Vous pouvez également sélectionner un ordinateur distant dans la boîte de dialogue Attacher au processus , afficher la liste des processus disponibles en cours d’exécution sur cet ordinateur et l’attacher à un ou plusieurs processus pour le débogage. Le débogueur distant (msvsmon.exe) doit s’exécuter sur l’ordinateur distant. Pour plus d’informations, consultez Débogage à distance.
À compter de Visual Studio 2022 version 17.10 Preview 2, la boîte de dialogue Attacher au processus a changé. Si vous avez besoin d’instructions correspondant à l’ancienne boîte de dialogue, basculez vers la vue Visual Studio 2019 (sélecteur de version supérieur gauche dans l’article).
Pour attacher un processus en cours d’exécution sur un ordinateur distant :
Dans Visual Studio, sélectionnez Déboguer>attacher au processus (ou appuyez sur Ctrl Alt++P) pour ouvrir la boîte de dialogue Attacher au processus.
Définissez le type de connexion sur un type de connexion à distance tel que Remote (Windows).
Dans la plupart des scénarios de débogage à distance sur Windows, vous pouvez utiliser Remote (Windows). Certains scénarios, tels que le débogage linux ou une application conteneurisée, nécessitent un type de connexion différent. Pour plus d’informations, consultez d’autres sections de cet article ou scénarios de débogage courants.
L’option Cible de connexion s’affiche.
Dans la zone Cible de connexion, sélectionnez l’ordinateur distant à l’aide de l’une des méthodes suivantes :
- Sélectionnez la flèche de liste déroulante en regard de la cible de connexion, puis sélectionnez le nom de l’ordinateur dans la liste déroulante.
- Tapez le nom de l’ordinateur dans la zone Cible de connexion, puis appuyez sur Entrée.
- Sélectionnez le bouton Rechercher en regard de la zone Cible de connexion pour ouvrir la boîte de dialogue Connexions à distance . La boîte de dialogue Connexions à distance répertorie tous les appareils qui se trouvent sur votre sous-réseau local ou directement attachés à votre ordinateur. Vous devrez peut-être ouvrir le port UDP sortant 3702 sur le serveur pour découvrir les appareils distants. Sélectionnez l’ordinateur ou l’appareil souhaité, puis fermez la boîte de dialogue.
Vérifiez que Visual Studio ajoute le port requis au nom de l’ordinateur, qui apparaît au format : <nom d’ordinateur distant>:port
Note
Si vous ne pouvez pas vous connecter à l’aide du nom de l’ordinateur distant, essayez d’utiliser l’adresse IP et l’adresse de port (par exemple).
123.45.678.9:4026Le port par défaut pour le débogueur distant de Visual Studio 2022 est 4026. Pour obtenir d’autres affectations de port de débogueur distant, consultez affectations de port du débogueur distant.Le paramètre de type de connexion persiste entre les sessions de débogage. Le paramètre cible de connexion persiste entre les sessions de débogage uniquement si une connexion de débogage réussie s’est produite avec cette cible.
Cliquez sur Actualiser pour remplir la liste des processus disponibles .
Conseil / Astuce
Les processus peuvent démarrer et s’arrêter en arrière-plan pendant que la boîte de dialogue Attacher au processus est ouverte, de sorte que la liste des processus en cours d’exécution n’est peut-être pas toujours en cours. Vous pouvez sélectionner Actualiser à tout moment pour afficher la liste active.
Dans la liste processus disponibles , recherchez et sélectionnez le processus ou les processus auquel vous souhaitez vous attacher.
Pour sélectionner rapidement un processus, tapez son nom ou sa première lettre dans la zone de recherche processus.
Si vous ne connaissez pas le nom du processus, parcourez la liste ou consultez les scénarios de débogage courants pour certains noms de processus courants.
Pour rechercher les processus en cours d’exécution sous tous les comptes d’utilisateur, cochez la case Afficher les processus de tous les utilisateurs .
Note
Si vous essayez de vous connecter à un processus appartenant à un compte d’utilisateur non approuvé, une boîte de dialogue d’avertissement de sécurité s’affichera. Pour plus d’informations, consultez Avertissement de sécurité : L’attachement à un processus appartenant à un utilisateur non approuvé peut être dangereux. Si les informations suivantes semblent suspectes ou si vous n’êtes pas sûr, n’attachez pas à ce processus.
Dans le champ Type de code, vérifiez que le type de code que vous envisagez de déboguer est répertorié.
Le paramètre automatique par défaut fonctionne pour la plupart des types d’applications, mais vous pouvez sélectionner un type de code spécifique pour spécifier manuellement le type de débogueur.
Sélectionnez Joindre.
Note
Vous pouvez être attaché à plusieurs applications pour le débogage, mais une seule application est active dans le débogueur à la fois. Vous pouvez définir l’application active dans la barre d’outils Emplacement du débogage de Visual Studio ou la fenêtre Processus .
Dans certains cas, lorsque vous déboguez dans une session Bureau à distance (Services terminal), la liste des processus disponibles n’affiche pas tous les processus disponibles. Si vous exécutez Visual Studio en tant qu’utilisateur disposant d’un compte d’utilisateur limité, la liste des processus disponibles n’affiche pas les processus qui s’exécutent dans la session 0. La session 0 est utilisée pour les services et d’autres processus serveur, notamment w3wp.exe. Vous pouvez résoudre le problème en exécutant Visual Studio sous un compte administrateur ou en exécutant Visual Studio à partir de la console serveur au lieu d’une session Bureau à distance.
Si aucune de ces solutions de contournement n’est possible, une troisième option consiste à s’attacher au processus en exécutant vsjitdebugger.exe -p <ProcessId> à partir de la ligne de commande Windows. Vous pouvez déterminer l’ID de processus à l’aide detlist.exe. Pour obtenir tlist.exe, téléchargez et installez les outils de débogage pour Windows, disponibles dans les téléchargements WDK et WinDbg.
Attacher à un processus .NET Core s’exécutant sur Azure App Service (Windows)
Si vous publiez sur Azure App Service (Windows), consultez le débogage à distance ASP.NET Core sur Azure ou le débogage d’Azure App Service pour obtenir des instructions.
Attacher à un processus .NET Core s’exécutant sur Linux à l’aide de SSH
Pour plus d’informations, consultez Remote debug .NET Core s’exécutant sur Linux à l’aide de SSH.
Attacher à un processus en cours d’exécution sur un conteneur Docker
À compter de Visual Studio 2019, vous pouvez attacher le débogueur Visual Studio à un processus s’exécutant sur un conteneur Docker. Pour un conteneur Docker Linux .NET Core, consultez Attacher à un processus s’exécutant sur un conteneur Docker Linux. Pour un conteneur Docker Windows, consultez Attacher à un processus s’exécutant sur un conteneur Docker Windows.
Reconnecter à un processus
Vous pouvez rapidement vous rattacher aux processus auxquels vous avez été précédemment attaché en choisissant Debug>Reattach to Process (Maj+Alt+P). Lorsque vous choisissez cette commande, le débogueur tente immédiatement d’attacher les derniers processus auxquels vous avez attaché en essayant d’abord de correspondre à l’ID de processus précédent et, en cas d’échec, en correspondant au nom du processus précédent. Si aucune correspondance n’est trouvée ou si plusieurs processus ont le même nom, la boîte de dialogue Attacher au processus s’ouvre afin de pouvoir sélectionner le processus approprié.
Note
La commande Reattach to Process est disponible à partir de Visual Studio 2017.
Scénarios de débogage courants
Pour vous aider à déterminer s’il faut utiliser Attach to Process et quel processus attacher, le tableau suivant présente quelques scénarios de débogage courants, avec des liens vers d’autres instructions si disponibles. (La liste n’est pas exhaustive.)
Pour sélectionner rapidement un processus en cours d’exécution à joindre, dans Visual Studio, tapez Ctrl+Alt+P, puis tapez la première lettre du nom du processus.
Pour que le débogueur s’attache au code écrit en C++, le code doit émettre DebuggableAttribute. Vous pouvez l’ajouter automatiquement à votre code en liant avec l’option /ASSEMBLYDEBUG du linker.
Pour le débogage de script côté client, le débogage de script doit être activé dans le navigateur. Pour le débogage du script côté client sur Chrome, choisissez JavaScript ou TypeScript comme type de code et, selon votre type d’application, vous devrez peut-être fermer toutes les instances Chrome et démarrer le navigateur en mode débogage (tapez chrome.exe --remote-debugging-port=9222 à partir d’une ligne de commande).
| Scénario | Méthode de débogage | Nom du processus | Notes et liens |
|---|---|---|---|
| ASP.NET Core - Débogage à distance sur le serveur IIS (Internet Information Services) | Utiliser les outils distants et Joindre au Processus | w3wp.exe ou dotnet.exe | À compter de .NET Core 3, le processus w3wp.exe est utilisé pour le modèle d’hébergement par défaut dans l’application. Pour le déploiement d’applications, consultez Publier sur IIS. Pour plus d’informations, voir Débogage à distance ASP.NET Core sur un ordinateur IIS distant |
| ASP.NET Core - Déboguer sur l’ordinateur local après avoir démarré l’application sans le débogueur | Utiliser Attacher au processus | appname.exe ou iisexpress.exe | Cela peut être utile pour accélérer le chargement de votre application, par exemple lors du profilage. Le processus de serveur local par défaut (kestrel) pour ASP.NET Core est appname.exe. |
| ASP.NET 4 ou 4.5 - Débogage distant sur un serveur IIS | Utiliser les outils distants et Joindre au Processus | w3wp.exe | Voir le débogage à distance d'ASP.NET sur un ordinateur IIS |
| Script côté client - Déboguer sur un serveur IIS local, pour les types d’applications pris en charge | Utiliser Attacher au processus | chrome.exe ou msedge.exe | Le débogage de script doit être activé. Pour Chrome, vous devez également exécuter Chrome en mode débogage (type chrome.exe --remote-debugging-port=9222 à partir d’une ligne de commande) et sélectionner JavaScript ou TypeScript dans le champ Attacher à . |
| Application C#, Visual Basic ou C++ - Déboguer sur l’ordinateur local | Utiliser le débogage standard (F5) ou Attacher au processus | {appname}.exe | Dans la plupart des scénarios, utilisez le débogage standard et non Attacher au processus. |
| Application de bureau Windows - Débogage à distance | Outils à distance | N/A | Voir Débogage distant d’une application C# ou Visual Basic ou Débogage distant d’une application C++ |
| .NET Core sur Linux - Débogage | Utiliser Attacher au processus | dotnet.exe ou un nom de processus unique | Pour utiliser SSH, consultez Le débogage distant .NET Core s’exécutant sur Linux à l’aide de SSH. Pour les applications conteneurisées, consultez Attacher à un processus en cours d’exécution dans un conteneur Docker. |
| Application conteneurisée - Déboguer | Utiliser Attacher au processus | dotnet.exe ou un nom de processus unique | Voir Attacher à un processus en cours d’exécution dans un conteneur Docker |
| Python sur Linux - Débogage à distance | Utiliser Attacher au processus | debugpy | Voir Attacher à distance à partir des outils Python |
| Autres types d’applications pris en charge - Déboguer sur un processus serveur | Si le serveur est distant, utilisez des outils distants et joignez-vous au processus | chrome.exe, msedge.exeou d’autres processus | Si nécessaire, utilisez Resource Monitor pour identifier le processus. Voir Débogage à distance. |
| Application de la plateforme Windows universelle (UWP), OneCore, HoloLens ou application IoT - Débogage à distance | Déboguer le package d’application installé | N/A | Consultez Déboguer un package d’application installé au lieu d’utiliser Attach to Process |
| Application UWP, OneCore, HoloLens ou IoT : déboguer une application que vous n’avez pas démarrée à partir de Visual Studio | Déboguer le package d’application installé | N/A | Consultez Déboguer un package d’application installé au lieu d’utiliser Attach to Process |
Utiliser les fonctionnalités du débogueur
Pour utiliser les fonctionnalités complètes du débogueur Visual Studio (par exemple, atteindre des points d’arrêt) lors de l’attachement à un processus, l’application doit correspondre exactement à votre source locale et à vos symboles. Autrement dit, le débogueur doit être en mesure de charger les fichiers de symboles corrects (.pdb). Par défaut, cela nécessite une compilation de débogage.
Pour les scénarios de débogage à distance, vous devez disposer du code source (ou d’une copie du code source) déjà ouvert dans Visual Studio. Les fichiers binaires d’application compilés sur l’ordinateur distant doivent provenir de la même build que sur l’ordinateur local.
Dans certains scénarios de débogage locaux, vous pouvez déboguer dans Visual Studio sans accès à la source si les fichiers de symboles corrects sont présents avec l’application. Par défaut, cela nécessite une compilation de débogage. Pour plus d’informations, consultez Spécifiez les fichiers de symboles et de sources.
Résoudre les erreurs d’attachement
Dans certains scénarios, le débogueur peut avoir besoin d’aide pour identifier correctement le type de code à déboguer. Si les valeurs de connexion sont correctement définies (vous pouvez afficher le processus approprié dans la liste Processus disponibles ), mais que le débogueur ne parvient pas à attacher, essayez de sélectionner le débogueur le plus approprié dans la liste de types de code , ce qui peut être nécessaire, par exemple, si vous déboguez une application Linux ou Python.
Parfois, le débogueur peut s’attacher à un type de code, mais pas à un autre type de code. En règle générale, cela se produit lorsque :
- Vous essayez de vous connecter à un processus qui s’exécute sur un ordinateur distant. L’ordinateur distant peut avoir installé des composants de débogage distants pour certains types de code, mais pas pour d’autres.
- Vous essayez de vous connecter à deux processus ou plus pour le débogage direct des bases de données. Le débogage SQL prend uniquement en charge l’attachement à un seul processus.
Si le débogueur est en mesure de s’attacher à certains types de code, mais pas tous, vous voyez un message identifiant les types qui n’ont pas pu être attachés.
Si le débogueur s’attache correctement à au moins un type de code, vous pouvez continuer à déboguer le processus. Vous serez en mesure de déboguer uniquement les types de code qui ont été correctement attachés. Le code non attaché dans le processus s’exécute toujours, mais vous ne pourrez pas définir de points d’arrêt, afficher les données ou effectuer d’autres opérations de débogage sur ce code.
Si vous souhaitez obtenir des informations plus spécifiques sur la raison pour laquelle le débogueur n’a pas pu s’attacher à un type de code, essayez de vous réattacher uniquement à ce type de code.
Obtenir des informations spécifiques sur la raison pour laquelle un type de code n’a pas pu être attaché
Détachez-vous du processus. Dans le menu Déboguer , sélectionnez Détacher tout.
Rattachez-vous au processus, en sélectionnant uniquement le type de code qui n’a pas pu être attaché.
Dans la boîte de dialogue Attacher au processus , sélectionnez le processus dans la liste Processus disponibles .
Dans l’option Type de code, sélectionnez le type de code qui n’a pas pu être attaché. Désélectionnez les autres types de code.
Dans la boîte de dialogue Attacher au processus , sélectionnez Attacher.
Cette fois, l’attachement échouera complètement et vous obtiendrez un message d’erreur spécifique.