Informations du débogueur Transact-SQL
S'applique à : SQL Server
Chaque fois que le débogueur suspend l'exécution du code au niveau d'une instruction Transact-SQL spécifique, vous pouvez utiliser les différentes fenêtres du débogueur pour afficher l'état d'exécution actuel.
Fenêtres du débogueur
En mode débogage, le débogueur ouvre des fenêtres à côté de la fenêtre de l'éditeur de requêtes. Le débogueur affiche ses informations dans les fenêtres sélectionnées. Chaque fenêtre du débogueur contient des onglets que vous pouvez sélectionner pour contrôler le jeu d'informations à afficher dans la fenêtre. La pile des appels, les points d’arrêt, les paramètres d’exception et les onglets Sortie sont contenus dans une fenêtre. Les onglets Watch1, Watch2, Watch3 et Watch4 sont contenus dans une fenêtre. Les fenêtres Threads et Locaux s’affichent séparément.
Remarque
Les descriptions précédentes s'appliquent aux emplacements par défaut des fenêtres du débogueur. Vous pouvez faire glisser un onglet pour le déplacer d'une fenêtre à l'autre, ou vous pouvez déverrouiller un onglet pour créer une nouvelle fenêtre pour les onglets sélectionnés.
Par défaut, ces onglets ou fenêtres ne sont pas tous actifs. Pour ouvrir une fenêtre particulière, dans le menu Débogage, sélectionnez Windows, puis la fenêtre que vous souhaitez visualiser.
Expressions-SQL Transact
Les expressions sont des clauses Transact-SQL qui prennent une valeur scalaire unique, par exemple des variables ou des paramètres. La fenêtre du débogueur peut afficher les valeurs de données qui sont actuellement affectées à des expressions dans cinq onglets ou fenêtres au maximum : Variables locales, Espion 1, Espion 2, Espion 3et Espion 4.
La fenêtre Variables locales affiche des informations sur les variables locales dans l’étendue actuelle du débogueur Transact-SQL. L’ensemble d’expressions répertorié dans la fenêtre Variables locales change à mesure que le débogueur exécute les différentes parties du code.
Les expressions des quatre Fenêtres Espion ne se limitent pas à l'énumération de l'identifiant d'une variable. Vous pouvez spécifier une expression Transact-SQL qui prend une valeur unique, comme l'ajout d'un nombre à une variable, ou une instruction SELECT qui prend une valeur unique. Voici quelques exemples :
Nom d’une variable de type, comme @IntegerCounter.
Opération arithmétique sur une variable, par exemple @IntegerCounter + 1.
Opération de chaîne sur deux variables de caractères, par exemple @FirstName + @LastName.
Une instruction SELECT qui retourne une seule valeur, par exemple SELECT CharCol FROM MyTable WHERE PrimaryKey = 1.
Les quatre fenêtres Espion affichent des informations sur les variables et les expressions sélectionnées. L’ensemble d’expressions répertorié dans la fenêtre Variables locales reste inchangé, sauf si vous modifiez ou supprimez des expressions dans la liste.
Pour ajouter une expression à une Fenêtre Espion, saisissez le nom de l'expression dans la colonne Nom d'une ligne vide de la fenêtre Espion. Vous pouvez également sélectionner QuickWatch dans le menu Débogage, entrer une expression, puis sélectionner Ajouter une montre.
Vous pouvez définir les valeurs de données pour des variables dans les fenêtres Variables locales, Espionou Espion express en cliquant avec le bouton droit sur la ligne, puis en sélectionnant Modifier la valeur. Les colonnes Valeur dans la fenêtre Variables locales , la fenêtre Espion et la boîte de dialogue Espion express prennent toutes en charge les visualiseurs de données texte, XML et HTML. Les visualiseurs sont représentés par une bulle d’informations en forme de loupe à droite de la colonne Valeurs . Vous pouvez utiliser les visualiseurs pour afficher des valeurs de données texte, XML ou HTML dans des affichages qui correspondent aux types de données, par exemple des fichiers XML dans une fenêtre de navigateur.
En mode débogage, lorsque vous déplacez le pointeur de la souris sur un identificateur, une fenêtre contextuelle Info express affiche le nom de l’expression et sa valeur actuelle. Pour plus d’informations, consultez Info express (IntelliSense).
Points d’arrêt
Vous pouvez utiliser la fenêtre Points d’arrêt pour afficher et gérer les points d’arrêt. Pour plus d’informations, consultez Exécuter pas à pas du code Transact-SQL.
Pile des appels
La fenêtre Pile des appels affiche l’emplacement d’exécution actuel et des informations sur la façon dont l’exécution a atteint l’emplacement d’exécution actuel à partir de la fenêtre de l’éditeur d’origine via des modules Transact-SQL (fonctions, procédures stockées ou déclencheurs). Chaque ligne dans la fenêtre Pile des appels est appelée un « frame de pile » et représente l’un des éléments suivants :
l'emplacement d'exécution actuel ;
un appel d'un module à un autre ;
un appel d'une fenêtre d'éditeur à un module Transact-SQL.
L'ordre de la pile est l'inverse de l'ordre dans lequel les modules ont été appelés. L'emplacement d'exécution actuel se trouve en haut de la pile, et l'appel d'origine en bas. Une flèche jaune dans la marge gauche du frame de pile identifie le frame dans lequel le débogueur a suspendu l'exécution.
La colonne Nom enregistre les informations suivantes :
le module source contenant la ligne de code ayant appelé le niveau suivant ;
la ligne de code ayant appelé le module suivant dans la pile.
Les noms, les types de données et les valeurs de tous les paramètres sont répertoriés si l'appel a été fait à une procédure stockée ou à une fonction qui prend des paramètres.
Les expressions dans les fenêtres Variables locales, Espionet Espion express sont évaluées pour le frame de pile actuel. Par défaut, le frame de pile actuel est le premier frame de la pile, où le débogueur a suspendu l'exécution. Lorsque vous spécifiez un autre frame de pile en tant que frame actuel, les expressions dans les fenêtres Variables locales, Espionet Espion express sont réévaluées pour le nouveau frame de pile. Vous pouvez modifier le frame de pile actuel en double-cliquant sur un frame ou en cliquant sur un frame et en sélectionnant Basculer vers le frame. À ce stade, les expressions dans les fenêtres Variables locales, Espionet Espion express sont réévaluées pour le nouveau frame. Lorsque le frame de pile actuel n'est pas le premier frame de la pile, une flèche verte dans la marge gauche du frame de pile identifie le frame de pile actuel.
Lorsque vous cliquez avec le bouton droit sur un frame de pile et que vous sélectionnez Atteindre le code source, le code pour ce frame est affiché dans une fenêtre de l’éditeur de requête. Toutefois, ce frame ne devient pas le frame actuel, et le contenu des fenêtres Variables locales, Espionet Espion express n’est pas modifié.
Informations système et résultats Transact-SQL
Le débogueur répertorie son état et des messages d’événements dans la fenêtre Sortie . La fenêtre comprend des informations telles que le moment où le débogueur s'attache à d'autres processus ou le moment où les threads du débogueur se terminent.
En mode débogage, les onglets Résultats et Messages sont toujours actifs dans l’éditeur de requête. L’onglet Résultats continue à afficher les jeux de résultats des instructions Transact-SQL qui sont exécutées au cours d’une session de débogage. L'onglet Messages continue d'afficher les messages du système, tels que le nombre de lignes affectées et la sortie des instructions PRINT et RAISERROR.