Comment : attacher à un processus en cours d'exécution
Mise à jour : novembre 2007
Cette rubrique s'applique à :
Édition |
Visual Basic |
C# |
C++ |
Web Developer |
---|---|---|---|---|
Express |
||||
Standard |
||||
Pro et Team |
Légende du tableau :
Applicable |
|
Non applicable |
|
Commande ou commandes masquées par défaut. |
Vous pouvez attacher le débogueur Visual Studio à n'importe quel processus en cours d'exécution.
Pour établir un attachement à un processus en cours d'exécution
Dans le menu Débogage, sélectionnez Attacher au processus. Si aucun projet n'est ouvert, sélectionnez Attacher au processus dans le menu Outils.
Dans la boîte de dialogue Attacher au processus, recherchez le programme que vous voulez attacher dans la liste Processus disponibles.
Si le programme que vous voulez déboguer est en cours d'exécution sur un autre ordinateur, vous devez d'abord sélectionner l'ordinateur distant. (Pour plus d'informations, consultez Comment : sélectionner un ordinateur distant.
Si le processus s'exécute sous un compte d'utilisateur différent, activez la case à cocher Afficher les processus de tous les utilisateurs.
Si vous êtes connecté via une Connexion Bureau à distance, activez la case à cocher Afficher les processus de toutes les sessions.
Dans la zone Attacher à, vérifiez que le type de code à déboguer est répertorié. Le paramètre par défaut Automatique tente de déterminer le type de code que vous souhaitez déboguer. Si le paramètre automatique n'est pas approprié :
Cliquez sur Sélectionner.
Dans la boîte de dialogue Sélectionner le type de code, cliquez sur Déboguer ces types de codes et sélectionnez les types à déboguer.
Cliquez sur OK.
Cliquez sur Attacher.
La liste Processus disponibles s'affiche automatiquement lorsque vous ouvrez la boîte de dialogue Processus. Les processus peuvent démarrer et s'interrompre en arrière-plan pendant que la boîte de dialogue est ouverte. Toutefois, le contenu n'est pas toujours actualisé. Pour visualiser la liste des processus en cours d'exécution, cliquez sur Actualiser.
Vous pouvez attacher un débogueur à plusieurs programmes à la fois, mais seul l'un d'entre eux est actif dans le débogueur à un moment donné. Vous pouvez définir le programme actif dans la barre d'outils Emplacement de débogage ou la fenêtre Processus. Pour plus d'informations, consultez Comment : définir le programme en cours.
Toutes les commandes d'exécution du menu Déboguer affectent le programme actif. Vous pouvez interrompre tout programme débogué depuis la boîte de dialogue Processus ou interrompre tous les programmes attachés depuis le menu Débogage. Pour plus d'informations, consultez Comment : arrêter l'exécution.
Remarque : Pour que le débogueur s'attache au code managé écrit en Visual C++, le code doit émettre DebuggableAttribute. Vous pouvez ajouter cela automatiquement à votre code grâce à la liaison, à l'aide de l'option /ASSEMBLYDEBUG.
Si vous essayez d'établir un attachement à un processus appartenant à un compte d'utilisateur non fiable, une boîte de dialogue d'avertissement de sécurité s'affiche avec un message de confirmation. Pour plus d'informations, consultez Avertissement de sécurité : L'attachement à ce processus risque d'endommager votre ordinateur. Si les informations ci-dessous semblent suspectes ou en cas de doutes, n'attachez pas ce processus..
Dans certains cas, lors du débogage dans une session Bureau à distance (Terminal Services), la liste Processus disponibles n'affiche pas tous les processus disponibles. Dans Windows Server 2003 ou les versions ultérieures, si vous exécutez Visual Studio avec un compte d'utilisateur limité, la liste Processus disponibles n'affiche pas les processus qui s'exécutent dans la session 0, qui est utilisée pour les services et les autres processus serveur, y compris w3wp.exe. Vous pouvez résoudre le problème en exécutant Visual Studio sous un compte d'administrateur ou à partir de la console serveur au lieu d'une session Terminal Services. Si aucune de ces solutions n'est possible, la troisième option consiste à attacher le débogueur au processus en exécutant vsjitdebugger.exe -p IDProcessus à partir de la ligne de commande Windows. Vous pouvez déterminer l'ID du processus à l'aide de tlist.exe. Pour obtenir tlist.exe, téléchargez et installez Microsoft Debugging Tools for Windows disponible à l'adresse https://www.microsoft.com/whdc/devtools/debugging/default.mspx.
Voir aussi
Tâches
Comment : créer des attachements à des processus smart device managés