Déboguer votre code PythonDebug your Python code

Visual Studio offre une expérience de débogage complète pour Python, comprenant notamment l’attachement à des processus en cours d’exécution, l’évaluation d’expressions dans les Fenêtres Espion et Exécution, l’inspection de variables locales, les points d’arrêt, les instructions de pas à pas détaillé/sortant/principal, la définition de l’instruction suivante, etc.Visual Studio provides a comprehensive debugging experience for Python, including attaching to running processes, evaluating expressions in the Watch and Immediate windows, inspecting local variables, breakpoints, step in/out/over statements, Set Next Statement, and more.

Consultez également les articles ci-après concernant le débogage propre à un scénario :Also see the following scenario-specific debugging articles:

Icône représentant une caméra pour les vidéosmovie camera icon for video Regardez une vidéo (Microsoft Virtual Academy) pour obtenir une démonstration du débogage de Python (3 min32s).Watch a video (Microsoft Virtual Academy) for a demonstration of Python debugging (3m 32s).

Tip

Python dans Visual Studio prend en charge le débogage sans projet.Python in Visual Studio supports debugging without a project. Après avoir ouvert un fichier Python autonome, cliquez avec le bouton droit dans l’éditeur, puis sélectionnez Démarrer avec débogage. Visual Studio lance alors le script avec l’environnement global par défaut (voir Environnements Python) sans aucun argument.With a stand-alone Python file open, right-click in the editor, select Start with Debugging, and Visual Studio launches the script with the global default environment (see Python environments) and no arguments. Mais vous bénéficiez désormais d’une prise en charge complète du débogage.But from then on, you have full debugging support.

Pour contrôler l’environnement et les arguments, créez un projet pour le code. Vous pouvez facilement effectuer cette opération à l’aide du modèle de projet À partir de code Python existant.To control the environment and arguments, create a project for the code, which is easily done with the From existing Python code project template.

Bases du débogageBasic debugging

Le flux de travail de débogage de base implique la définition de points d’arrêt, l’exécution de code pas à pas, l’inspection de valeurs et la gestion des exceptions, comme décrit dans les sections suivantes.The basic debugging workflow involves settings breakpoints, stepping through code, inspecting values, and handling exceptions as described in the following sections.

Une session de débogage est initialisée par la commande Débogage > Démarrer le débogage, le bouton Démarrer de la barre d’outils ou la touche F5.A debugging session starts with the Debug > Start Debugging command, the Start button on the toolbar, or the F5 key. Ces opérations lancent le fichier de démarrage de votre projet (indiqué en gras dans l’Explorateur de solutions) avec l’environnement actif du projet et tous les arguments de ligne de commande ou chemins de recherche qui ont été spécifiés dans Propriétés du projet (consultez la section Options de débogage d’un projet).These actions launch your project's startup file (shown in bold in Solution Explorer) with the project's active environment and any command-line arguments or search paths that have been specified in Project Properties (see Project debugging options). Visual Studio 2017 versions 15.6 et ultérieures vous avertit si vous n’avez pas de fichier de démarrage défini ; les versions antérieures peuvent ouvrir une fenêtre de sortie avec l’interpréteur Python en cours d’exécution, ou la fenêtre de sortie s’affiche brièvement et disparaît.Visual Studio 2017 version 15.6 and later alerts you if you don't have a startup file set; earlier versions may open an output window with the Python interpreter running, or the output window briefly appears and disappears. Dans tous les cas, cliquez avec le bouton droit sur le fichier approprié et sélectionnez Définir comme fichier de démarrage.In any case, right-click the appropriate file and select Set as Startup File.

Note

Le débogueur démarre toujours avec l’environnement Python actif associé au projet.The debugger always starts with the active Python environment for the project. Pour changer d’environnement, activez-en un autre en suivant les instructions de la page Sélectionner un environnement Python pour un projet.To change the environment, make a different one active as described on Select a Python environment for a project.

Points d’arrêtBreakpoints

Les points d’arrêt arrêtent l’exécution du code au niveau d’un point marqué, ce qui vous permet d’inspecter l’état du programme.Breakpoints stop execution of code at a marked point so you can inspect the program state. Pour définir des points d’arrêt, cliquez dans la marge gauche de l’éditeur de code ou cliquez avec le bouton droit sur une ligne de code et sélectionnez Point d’arrêt > Insérer un point d’arrêt.Set breakpoints by clicking in the left margin of the code editor or by right-clicking a line of code and selecting Breakpoint > Insert Breakpoint. Un point rouge apparaît sur chaque ligne comportant un point d’arrêt.A red dot appears on each line with a breakpoint.

Points d’arrêt dans Visual Studio

Pour supprimer un point d’arrêt, cliquez sur le point rouge, ou cliquez avec le bouton droit sur la ligne de code et sélectionnez Point d’arrêt > Supprimer le point d’arrêt.Clicking the red dot or right-clicking the line of code and selecting Breakpoint > Delete Breakpoint removes the breakpoint. Vous pouvez également désactiver le point d’arrêt sans le supprimer en utilisant la commande Point d’arrêt > Désactiver le point d’arrêt.You can also disable it without removing it using the Breakpoint > Disable Breakpoint command.

Note

Certains points d’arrêt dans Python peuvent surprendre les développeurs habitués à d’autres langages de programmation.Some breakpoints in Python can be surprising for developers who have worked with other programming languages. Dans Python, l’intégralité du fichier correspond à du code exécutable, de sorte que Python exécute le fichier lorsqu’il est chargé pour traiter n’importe quelle définition de fonction ou de classe de niveau supérieur.In Python, the entire file is executable code, so Python runs the file when it's loaded to process any top-level class or function definitions. Si un point d’arrêt a été défini, il est possible que le débogueur marque un arrêt à mi-chemin d’une déclaration de classe.If a breakpoint has been set, you may find the debugger breaking part-way through a class declaration. Même s’il peut sembler surprenant, ce comportement est correct.This behavior is correct, even though it's sometimes surprising.

Vous pouvez personnaliser les conditions de déclenchement d’un point d’arrêt, par exemple en demandant l’arrêt uniquement quand une variable est définie sur une certaine valeur ou plage de valeurs.You can customize the conditions under which a breakpoint is triggered, such as breaking only when a variable is set to a certain value or value range. Pour définir des conditions, cliquez avec le bouton droit sur le point rouge du point d’arrêt, sélectionnez Condition, puis créez des expressions à l’aide d’un code Python.To set conditions, right-click the breakpoint's red dot, select Condition, then create expressions using Python code. Pour plus d’informations sur cette fonctionnalité dans Visual Studio, consultez la section Conditions de point d’arrêt.For full details on this feature in Visual Studio, see Breakpoint conditions.

Lorsque vous définissez des conditions, vous pouvez également définir Action et créer un message à consigner dans la fenêtre de sortie, tout en demandant éventuellement la poursuite automatique de l’exécution.When setting conditions, you can also set Action and create a message to log to the output window, optionally continuing execution automatically. La journalisation d’un message crée un point de trace sans l’ajout d’un code de journalisation directement dans votre application :Logging a message creates what is called a tracepoint without adding logging code to your application directly:

Création d’un point de trace avec un point d’arrêt

Exécuter le code pas à pasStep through code

Une fois arrêté au niveau d’un point d’arrêt, vous disposez de différentes méthodes pour exécuter le code pas à pas ou pour exécuter des blocs de code avant de marquer un nouvel arrêt.Once stopped at a breakpoint, you have various ways to step through code or run blocks of code before breaking again. Ces commandes sont disponibles à divers emplacements, notamment la barre d’outils de débogage supérieure, le menu Débogage, le menu contextuel dans l’éditeur de code et certains raccourcis clavier (même si certaines de ces commandes ne sont pas disponibles à tous ces emplacements) :These commands are available in a number of places, including the top debug toolbar, the Debug menu, on the right-click context menu in the code editor, and through keyboard shortcuts (though not all commands are in all places):

FonctionnalitéFeature Touche(s)Keystroke DescriptionDescription
ContinueContinue F5F5 Exécute le code jusqu’au point d’arrêt suivant.Runs code until the next breakpoint is reached.
Pas à pas détailléStep Into F11F11 Exécute l’instruction suivante et s’arrête.Runs the next statement and stops. Si l’instruction suivante correspond à l’appel d’une fonction, le débogueur s’arrête à la première ligne de la fonction appelée.If the next statement is a call to a function, the debugger stops at the first line of the function being called.
Pas à pas principalStep Over F10F10 Exécute l’instruction suivante, y compris l’appel d’une fonction (en exécutant la totalité de son code) et l’application de toute valeur renvoyée.Runs the next statement, including making a call to a function (running all its code) and applying any return value. Le mode pas à pas principal vous permet d’ignorer facilement les fonctions que vous n’avez pas besoin de déboguer.Stepping over allows you to easily skip functions that you do not need to debug.
Pas à pas sortantStep Out Maj+F11Shift+F11 Exécute le code jusqu’à la fin de la fonction actuelle, puis procède à une exécution pas à pas jusqu’à l’instruction appelante.Runs code until the end of the current function, then steps to the calling statement. Cette commande est utile quand vous n’avez pas besoin de déboguer le reste de la fonction actuelle.This command is useful when you don't need to debug the remainder of the current function.
Exécuter jusqu’au curseurRun to Cursor Ctrl+F10Ctrl+F10 Exécute le code jusqu’à l’emplacement du signe insertion dans l’éditeur.Runs code up to the location of the caret in the editor. Cette commande vous permet d’ignorer facilement un segment de code que vous n’avez pas besoin de déboguer.This command allows you to easily skip over a segment of code that you don't need to debug.
Définir l’instruction suivanteSet Next Statement Ctrl+Maj+F10Ctrl+Shift+F10 Redéfinit le point d’exécution actuel dans le code sur l’emplacement du signe insertion.Changes the current run point in the code to the location of the caret. Cette commande vous permet d’omettre totalement l’exécution d’un segment de code donné, par exemple quand vous savez que le code est défectueux ou qu’il produit un effet indésirable.This command allows you to omit a segment of code from being run at all, such as when you know the code is faulty or produces an unwanted side-effect.
Afficher l’instruction suivanteShow Next Statement Alt+Num *Alt+Num * Vous renvoie à la prochaine instruction à exécuter.Returns you to the next statement to run. Cette commande est utile si vous avez parcouru votre code et que vous ne vous souvenez pas de l’endroit où le débogueur s’est arrêté.This command is helpful if you've been looking around in your code and don't remember where the debugger is stopped.

Inspecter et modifier les valeursInspect and modify values

Lorsque vous êtes arrêté dans le débogueur, vous pouvez inspecter et modifier les valeurs des variables.When stopped in the debugger, you can inspect and modify the values of variables. Vous pouvez également utiliser la Fenêtre Espion pour surveiller des variables spécifiques, ainsi que des expressions personnalisées.You can also use the Watch window to monitor individual variables as well as custom expressions. (Pour obtenir des informations générales, consultez la section Inspect Variables (Inspecter des variables).)(See Inspect variables for general details.)

Pour visualiser une valeur à l’aide des DataTips, il vous suffit de positionner le pointeur de la souris sur une variable quelconque dans l’éditeur.To view a value using DataTips, simply hover the mouse over any variable in the editor. Vous pouvez alors cliquer sur cette valeur si vous souhaitez la modifier :You can click on the value to change it:

DataTips dans le débogueur

La fenêtre Automatique (Débogage > Fenêtres > Automatique) contient les variables et expressions qui sont proches de l’instruction actuelle.The Autos window (Debug > Windows > Autos) contains variables and expressions that are close to the current statement. Vous pouvez double-cliquer sur la colonne Valeur ou sélectionner une valeur et appuyer sur F2 pour la modifier :You can double-click in the value column or select and press F2 to edit the value:

Fenêtre Automatique dans le débogueur

La fenêtre Variables locales (Débogage > Fenêtres > Variables locales) affiche toutes les variables qui se trouvent dans la portée actuelle et que vous pouvez modifier :The Locals window (Debug > Windows > Locals) displays all variables that are in the current scope, which can again be edited:

Fenêtre Variables locales dans le débogueur

Pour plus d’informations sur l’utilisation des fenêtres Automatique et Variables locales, consultez l’article Inspecter les variables dans les fenêtres Automatique et Variables locales.For more on using Autos and Locals, see Inspect variables in the Autos and Locals windows.

Les Fenêtres Espion (Débogage > Fenêtres > Espion > Espion 1-4) vous permettent d’entrer des expressions Python arbitraires et d’en visualiser les résultats.The Watch windows (Debug > Windows > Watch > Watch 1-4) allow you to enter arbitrary Python expressions and view the results. Les expressions sont réévaluées pour chaque étape :Expressions are reevaluated for each step:

Fenêtre Espion dans le débogueur

Pour plus d’informations sur l’utilisation de la fonctionnalité Espion, consultez l’article Définir un espion sur les variables à l’aide des Fenêtres Espion et Espion express.For more on using Watch, see Set a watch on variables using the Watch and QuickWatch windows.

Pendant l’inspection d’une valeur de chaîne (str, unicode, bytes et bytearray sont toutes considérées comme des chaînes dans ce but), une icône Loupe apparaît à droite de la valeur.When inspecting a string value(str, unicode, bytes, and bytearray are all considered strings for this purpose), a magnifying glass icon appears on the right side of the value. Quand vous cliquez sur l’icône, la valeur de chaîne sans guillemets s’affiche dans une boîte de dialogue contextuelle, avec retour à la ligne et défilement, ce qui est utile pour les chaînes longues.Clicking the icon displays the unquoted string value in a popup dialog, with wrapping and scrolling, which is useful for long strings. En outre, la sélection de la flèche déroulante vers le bas en regard de l’icône vous permet de sélectionner des visualisations aux formats texte brut, HTML, XML et JSON :In addition, selecting the drop-down arrow on the icon allows you to select plain text, HTML, XML, and JSON visualizations:

Visualiseurs de chaîne

Les visualisations HTML, XML et JSON apparaissent dans des fenêtres contextuelles distinctes avec des arborescences et mise en surbrillance de la syntaxe.HTML, XML, and JSON visualizations appear in separate popup windows with syntax highlighting and tree views.

ExceptionsExceptions

Si une erreur survient dans votre programme lors du débogage, mais que vous ne disposez pas d’un gestionnaire d’exceptions à cet effet, le débogueur s’arrête au niveau de l’exception :If an error occurs in your program during debugging, but you don't have an exception handler for it, the debugger breaks at the point of the exception:

Fenêtre contextuelle d’exceptions

À ce stade, vous pouvez inspecter l’état du programme, y compris la pile des appels.At this point you can inspect the program state, including the call stack. Toutefois, si vous essayez d’exécuter le code pas à pas, l’exception continue d’être levée jusqu’à ce qu’elle soit gérée ou que votre programme se ferme.However, if you attempt to step through the code, the exception continues being thrown until it is either handled or your program exits.

La commande de menu Débogage > Fenêtres > Paramètres d’exception affiche une fenêtre vous permettant de développer Python Exceptions (Exceptions Python) :The Debug > Windows > Exception Settings menu command brings up a window in which you can expand Python Exceptions:

Fenêtre d’exceptions

La case à cocher de chaque exception détermine si le débogueur s’arrête systématiquement lorsque l’exception est déclenchée.The checkbox for each exception controls whether the debugger always breaks when it is raised. Cochez cette case si vous souhaitez que le débogueur s’arrête plus souvent pour une exception spécifique.Check this box when you want to break more often for a particular exception.

Par défaut, le débogueur s’arrête pour la plupart des exceptions quand aucun gestionnaire d’exceptions ne figure dans le code source.By default, most exceptions break when an exception handler cannot be found in the source code. Pour modifier ce comportement, cliquez avec le bouton droit sur une exception et modifiez l’option Continuer en cas d’exception non gérée dans le code utilisateur.To change this behavior, right-click any exception and modify the Continue When Unhandled in User Code option. Si vous préférez que le débogueur s’arrête moins souvent pour une exception donnée, décochez cette case.Clear this box when you want to break less often for an exception.

Pour configurer une exception absente de cette liste, ajoutez-la en cliquant sur le bouton Ajouter.To configure an exception that does not appear in this list, click the Add button to add it. Indiquez un nom correspondant au nom complet de l’exception.The name must match the full name of the exception.

Options de débogage d’un projetProject debugging options

Par défaut, le débogueur démarre votre programme avec le lanceur Python standard, sans aucun argument de ligne de commande et aucun autre chemin d’accès ni condition spéciaux.By default, the debugger starts your program with the standard Python launcher, no command-line arguments, and no other special paths or conditions. Les options de démarrage sont modifiées par le biais des propriétés de débogage du projet accessibles en cliquant avec le bouton droit sur votre projet dans l’Explorateur de solutions, en sélectionnant Propriétés, puis l’onglet Débogage.Startup options are changed through the project's debug properties accessed by right-clicking your project in Solution Explorer, selecting Properties, and selecting the Debug tab.

Propriétés de débogage du projet

Options du mode de lancementLaunch mode options

OptionOption DescriptionDescription
Lanceur Python standardStandard Python launcher Utilise le code de débogage écrit en Python portable qui est compatible avec CPython, IronPython et des variantes telles que Python Stackless.Uses debugging code written in portable Python that is compatible with CPython, IronPython, and variants such as Stackless Python. Cette option offre la meilleure expérience en matière de débogage de code Python pure.It provides the best experience for debugging pure Python code. Quand vous effectuez un attachement à un processus python.exe en cours d’exécution, ce lanceur est utilisé.When you attach to a running python.exe process, this launcher is used. Ce lanceur fournit également un débogage en mode mixte pour CPython, ce qui vous permet d’exécuter un pas à pas détaillé alternant en toute transparence entre du code C/C++ et du code Python.This launcher also provides mixed-mode debugging for CPython, allowing you to step seamlessly between C/C++ code and Python code.
Lanceur webWeb launcher Démarre votre navigateur par défaut au lancement et active le débogage des modèles.Starts your default browser on launch and enables debugging of templates. Pour plus d’informations, consultez la section consacrée au débogage de modèles web.See the Web template debugging section for more information.
Lanceur web DjangoDjango Web launcher Identique au lanceur web et uniquement affiché pour des raisons de compatibilité descendante.Identical to the Web launcher and shown only for backwards compatibility.
Lanceur IronPython (.NET)IronPython (.NET) launcher Utilise le débogueur .NET, qui fonctionne uniquement avec IronPython, mais autorise l’exécution d’un pas à pas détaillé sur n’importe quel projet en langage .NET, y compris C# et VB.Uses the .NET debugger, which only works with IronPython but allows for stepping between any .NET language project, including C# and VB. Ce lanceur est utilisé si vous effectuez un attachement à un processus .NET en cours d’exécution hébergeant IronPython.This launcher is used if you attach to a running .NET process that is hosting IronPython.

Options d’exécution (chemins de recherche, arguments de démarrage et variables d’environnement)Run options (search paths, startup arguments, and environment variables)

OptionOption DescriptionDescription
Chemins de rechercheSearch Paths Ces valeurs correspondent à celles qui apparaissent dans le nœud Chemins de recherche du projet dans l’Explorateur de solutions.These values match what's shown in the project's Search Paths node in Solution Explorer. Vous pouvez modifier cette valeur à cet emplacement, mais il est plus facile d’utiliser l’Explorateur de solutions qui vous permet de parcourir les dossiers et convertit automatiquement les chemins sous leur forme relative.You can modify this value here, but it's easier to use Solution Explorer that lets you browse folders and automatically converts paths to relative form.
Arguments de scriptScript Arguments Ces arguments sont ajoutés à la commande utilisée pour lancer votre script, apparaissant après le nom de fichier du script.These arguments are added to the command used to launch your script, appearing after your script's filename. Le premier argument spécifié à cet emplacement est disponible pour votre script sous la forme sys.argv[1], le deuxième argument apparaît sous la forme sys.argv[2], etc.The first item here is available to your script as sys.argv[1], the second as sys.argv[2], and so on.
Arguments d’interpréteurInterpreter Arguments Ces arguments sont ajoutés à la ligne de commande du lanceur avant le nom de votre script.These arguments are added to the launcher command line before the name of your script. Les arguments couramment indiqués à cet emplacement sont -W ... pour contrôler les avertissements, -O pour optimiser légèrement votre programme et -u pour utiliser des E/S non mises en mémoire tampon.Common arguments here are -W ... to control warnings, -O to slightly optimize your program, and -u to use unbuffered IO. Les utilisateurs IronPython utilisent généralement ce champ pour transmettre des options -X, telles que -X:Frames ou -X:MTA.IronPython users are likely to use this field to pass -X options, such as -X:Frames or -X:MTA.
Chemin d’interpréteurInterpreter Path Remplace le chemin d’accès associé à l’environnement actuel.Overrides the path associated with the current environment. La valeur peut être utile pour lancer votre script avec un interpréteur non standard.The value may be useful for launching your script with a non-standard interpreter.
Variables d’environnementEnvironment Variables Dans cette zone de texte multiligne, ajoutez des entrées sous la forme <NOM>=<VALEUR>.In this multi-line text box, add entries of the form <NAME>=<VALUE>. Dans la mesure où ce paramètre est appliqué en dernier, après toutes les variables d’environnement globales existantes et après avoir défini PYTHONPATH en fonction du paramètre Chemins de recherche, vous pouvez l’utiliser pour remplacer manuellement ces autres variables.Because this setting is applied last, on top of any existing global environment variables, and after PYTHONPATH is set according to the Search Paths setting, it can be used to manually override any of those other variables.

Fenêtres Exécution et InteractiveImmediate and Interactive windows

Dans le cadre d’une session de débogage, vous pouvez utiliser deux fenêtres interactives : la fenêtre Exécution Visual Studio standard et la fenêtre interactive de débogage Python.There are two interactive windows you can use during a debugging session: the standard Visual Studio Immediate window, and the Python Debug Interactive window.

La fenêtre Exécution (Débogage > Fenêtres > Exécution) est utilisée pour une évaluation rapide des expressions Python et pour l’inspection ou l’affectation de variables au sein du programme en cours d’exécution.The Immediate window (Debug > Windows > Immediate) is used for quick evaluation of Python expressions and inspection or assignment of variables within the running program. Pour plus d’informations, consultez l’article général Fenêtre Exécution.See the general Immediate window article for details.

La fenêtre interactive de débogage Python (Débogage > Fenêtres > Fenêtre interactive de débogage Python) est plus élaborée, car elle offre une expérience REPL interactive complète au cours du débogage, notamment pour l’écriture et l’exécution de code.The Python Debug Interactive window (Debug > Windows > Python Debug Interactive) is richer as it makes the full Interactive REPL experience available while debugging, including writing and running code. Elle se connecte automatiquement à tout processus démarré dans le débogueur à l’aide du lanceur Python standard (dont les processus attachés par le biais de la commande Débogage > Attacher au processus).It automatically connects to any process started in the debugger using the Standard Python launcher (including processes attached through Debug > Attach to Process). Toutefois, cette fenêtre n’est pas disponible en cas d’utilisation du débogage C/C++ en mode mixte.It's not, however, available when using mixed-mode C/C++ debugging.

Fenêtre de débogage Python interactive

Outre les commandes REPL standard, la fenêtre de débogage interactive prend en charge des méta commandes spéciales :The Debug Interactive window supports special meta-commands in addition to the standard REPL commands:

CommandeCommand ArgumentsArguments DescriptionDescription
$continue, $cont, $c$continue, $cont, $c Démarre l’exécution du programme à partir de l’instruction actuelle.Starts running the program from the current statement.
$down, $d$down, $d Abaisse le frame actuel d’un niveau dans la trace de la pile.Move the current frame one level down in the stack trace.
$frame Affiche l’ID du frame actuel.Displays the current frame id.
$frame frame idframe id Remplace le frame actuel par l’ID de frame spécifié.Switches the current frame to the specified frame id.
$load Charge les commandes d’un fichier et s’exécute jusqu’à la fin.Loads commands from file and executes until complete
$proc Affiche l’ID du processus actuel.Displays the current process id.
$proc process idprocess id Remplace le processus actuel par l’ID de processus spécifié.Switches the current process to the specified process id.
$procs Répertorie les processus en cours de débogage.Lists the processes currently being debugged.
$stepin, $step, $s$stepin, $step, $s Effectue un pas à pas détaillé dans l'appel de fonction suivant, si possible.Steps into the next function call, if possible.
$stepout, $return, $r$stepout, $return, $r Sort de la fonction active.Steps out of the current function.
$stepover, $until, $unt$stepover, $until, $unt Passe à l'appel de fonction suivant.Steps over the next function call.
$thread Affiche l’ID du thread actuel.Displays the current thread id.
$thread thread idthread id Remplace le thread actuel par l’ID de thread spécifié.Switches the current thread to the specified thread id.
$threads Répertorie les threads en cours de débogage.Lists the threads currently being debugged.
$up, $u$up, $u Remonte le frame actuel d’un niveau dans la trace de la pile.Move the current frame one level up in the stack trace.
$where, $w, $bt$where, $w, $bt Répertorie les frames du thread actuel.Lists the frames for the current thread.

Notez que les fenêtres du débogueur standard telles que Processus, Threads et Pile des appels ne sont pas synchronisées avec la Fenêtre interactive de débogage.Note that the standard debugger windows such as Processes, Threads, and Call Stack are not synchronized with the Debug Interactive window. La modification du processus, du thread ou du frame actifs dans la fenêtre interactive de débogage n’affecte pas les autres fenêtres du débogueur.Changing the active process, thread, or frame in the Debug Interactive window does not affect the other debugger windows. De même, la modification du processus, du thread ou du frame actifs dans les autres fenêtres du débogueur n’affecte pas la fenêtre interactive de débogage.Similarly, changing the active process, thread, or frame in the other debugger windows does not affect the Debug Interactive window.

La fenêtre interactive de débogage comporte son propre jeu d’options, accessibles par le biais des commandes Outils > Options > Python Tools > Fenêtre interactive de débogage.The Debug Interactive window has its own set of options, which you can access through Tools > Options > Python Tools > Debug Interactive Window. Contrairement à la fenêtre interactive Python standard, dont il existe une instance distincte pour chaque environnement Python, il n’existe qu’une seule fenêtre de débogage interactive, laquelle utilise systématiquement l’interpréteur Python pour le processus en cours de débogage.Unlike the regular Python Interactive window, which has a separate instance for each Python environment, there is only one Debug Interactive window and it always uses the Python interpreter for the process being debugged. Consultez Options - Options de débogage.See Options - Debugging options.

Options de la fenêtre de débogage interactive

Utiliser le débogueur héritéUse the legacy debugger

Visual Studio 2017 version 15.8 et les versions ultérieures utilisent un débogueur basé sur ptvsd version 4.1+.Visual Studio 2017 versions 15.8 and later use a debugger based on ptvsd version 4.1+. Cette version de ptvsd est compatible avec Python 2.7 et Python 3.5+.This version of ptvsd is compatible with Python 2.7 and Python 3.5+. Si vous utilisez Python 2.6, 3.1 à 3.4, ou IronPython, Visual Studio affiche l’erreur, Le débogueur ne prend pas en charge cet environnement Python :If you're using Python 2.6, 3.1 to 3.4, or IronPython, Visual Studio shows the error, Debugger does not support this Python environment:

Le débogueur ne prend pas en charge cette erreur d’environnement Python quand il est utilisé

Dans les cas de figure de ce type, vous devez utiliser l’ancien débogueur (ce qui correspond à la valeur par défaut dans Visual Studio 2017 versions 15.7 et antérieures).In these cases you must use the older debugger (which is the default in Visual Studio 2017 versions 15.7 and earlier). Sélectionnez la commande de menu Outils > Options, accédez à Python > Débogage, puis sélectionnez l’option Utiliser le débogueur hérité.Select the Tools > Options menu command, navigate to Python > Debugging, and select the Use legacy debugger option.

Si vous avez installé une ancienne version de ptvsd dans l’environnement actuel (par exemple une ancienne version 4.0.x ou une version 3.x nécessaire au débogage à distance), Visual Studio peut afficher une erreur ou un avertissement.If you've installed an older version of ptvsd in the current environment (such as an earlier 4.0.x version, or a 3.x version required for remote debugging), Visual Studio may show an error or warning.

L’erreur Impossible de charger le package du débogueur s’affiche quand vous avez installé ptvsd 3.x :The error, Debugger package could not be loaded, appears when you've installed ptvsd 3.x:

Erreur « Impossible de charger le package du débogueur » durant l’utilisation du débogueur

Dans ce cas, sélectionnez Utiliser le débogueur hérité pour définir l’option Utiliser le débogueur hérité, puis redémarrez le débogueur.In this case, select Use the legacy debugger to set the Use legacy debugger option, and restart the debugger.

L’avertissement Le package du débogueur est obsolète s’affiche quand vous avez installé une ancienne version 4.x de ptvsd :The warning, Debugger package is outdated, appears when you've installed an earlier 4.x version of ptvsd:

Avertissement « Le package du débogueur est obsolète » durant l’utilisation du débogueur

Important

Bien que vous puissiez choisir d’ignorer l’avertissement pour certaines versions de ptvsd, Visual Studio peut ne pas fonctionner correctement.Although you may choose to ignore the warning for some versions of ptvsd, Visual Studio may not work correctly.

Pour gérer votre installation de ptvsd :To manage your ptvsd installation:

  1. Accédez à l’onglet Packages de la fenêtre Environnements Python.Navigate to the Packages tab in the Python Environments window.

  2. Entrez « ptvsd » dans le champ de recherche, puis examinez la version installée de ptvsd :Enter "ptvsd" in the search box and examine the installed version of ptvsd:

    Vérification de la version de ptvsd dans la fenêtre Environnements Python

  3. Si la version est inférieure à 4.1.1a9 (la version groupée avec Visual Studio), sélectionnez le X à droite du package pour désinstaller l’ancienne version.If the version is lower than 4.1.1a9 (the version bundled with Visual Studio), select the X to the right of the package to uninstall the older version. Visual Studio utilise alors sa version groupée.Visual Studio then uses its bundled version. (Vous pouvez également la désinstaller à l’aide de PowerShell via pip uninstall ptvsd.)(You can also uninstall from PowerShell using pip uninstall ptvsd.)

  4. Vous pouvez également mettre à jour le package ptvsd vers sa version la plus récente.Alternately, you can update the ptvsd package to its newest version. Entrez ptvsd --upgrade -pre dans la zone de recherche, puis sélectionnez Exécuter la commande : pip install ptvsd --upgrade -pre.Enter ptvsd --upgrade -pre in the search box, then select Run command: pip install ptvsd --upgrade -pre. (Vous pouvez également utiliser la même commande à partir de PowerShell.)(You can also use the same command from PowerShell.)

    Commande de mise à niveau dans la fenêtre Environnements Python

Voir aussiSee also

Pour plus d’informations sur le débogueur Visual Studio, consultez l’article Débogage dans Visual Studio.For complete details on the Visual Studio debugger, see Debugging in Visual Studio.