Inspecter votre application avec le débogage historique IntelliTrace dans Visual Studio (C#, Visual Basic, C++)
Vous pouvez utiliser le débogage historique pour parcourir l’exécution de votre application et inspecter son état.
Vous pouvez utiliser IntelliTrace dans Visual Studio Enterprise Edition, mais pas dans les éditions Professional ou Community.
Naviguer dans votre code avec le débogage historique
Commençons par un programme simple qui contient un bogue. Dans une application de console C#, ajoutez le code suivant :
static void Main(string[] args)
{
int testInt = 0;
int resultInt = AddIterative(testInt);
Console.WriteLine(resultInt);
}
private static int AddIterative(int j)
{
for (int i = 0; i < 20; i++)
{
j = AddInt(j);
}
return j;
}
private static int AddInt(int add)
{
if (add == 10)
{
return add += 25;
}
return ++add;
}
Nous partons du principe que la valeur attendue de resultInt
après l’appel de AddIterative()
est 20 (le résultat de 20 incrémentations de testInt
). (Nous partons également du principe que vous ne voyez pas le bogue dans AddInt()
). Mais le résultat est bien 44. Comment trouver le bogue sans parcourir 10 fois AddIterative()
? Nous pouvons utiliser le débogage d’historique pour simplifier et accélérer l’identification du bogue. Voici comment procéder :
Dans Outils > Options > IntelliTrace > Général, assurez-vous qu’IntelliTrace est activé et sélectionnez Événements IntelliTrace et informations d’appel. Si vous ne sélectionnez pas cette option, vous ne verrez pas la marge de navigation (comme expliqué ci-dessous).
Définissez un point d’arrêt sur la ligne
Console.WriteLine(resultInt);
.Démarrez le débogage. Le code s'exécute jusqu'au point d'arrêt. Dans la fenêtre Variables locales, vous pouvez constater que la valeur de
resultInt
est 44.Ouvrez la fenêtre Outils de diagnostic (Déboguer > Afficher les outils de diagnostic). La fenêtre de code doit ressembler à ce qui suit :
Vous devez voir une double flèche en regard de la marge de gauche, juste au-dessus du point d'arrêt. Cette zone est appelée « marge de navigation » et est utilisée pour le débogage d’historique. Cliquez sur la flèche.
Dans la fenêtre de code, vous devez voir que la ligne de code précédente (
int resultInt = AddIterative(testInt);
) est de couleur rose. Au-dessus de la fenêtre, vous devez voir un message indiquant que vous êtes en mode de débogage d’historique.La fenêtre de code doit maintenant ressembler à ceci :
À présent, vous pouvez effectuer un pas à pas détaillé dans la méthode
AddIterative()
(appuyez sur la touche F11 ou sur le bouton Pas à pas détaillé dans la marge de navigation). Avancez (touche F10 ou bouton Aller à l’appel suivant dans la marge de navigation). Le trait rose est désormais sur la lignej = AddInt(j);
. Appuyer sur la touche F10 dans ce cas ne permet pas d’accéder à la ligne de code suivante. En fait, vous accédez à l'appel de fonction suivant. Le débogage d'historique permet de naviguer d'un appel à l'autre. Il ignore les lignes de code qui n'incluent pas d'appel de fonction.Maintenant, effectuez un pas à pas détaillé de la méthode
AddInt()
. Vous devez voir immédiatement le bogue dans ce code.
Contenu connexe
Cette procédure ne présente que succinctement ce que vous pouvez faire avec le débogage d’historique.
- Pour afficher les captures instantanées lors du débogage, consultez Inspecter les précédents états des applications à l’aide d’IntelliTrace.
- Pour en savoir plus sur les différents paramètres et les effets des différents boutons de la marge de navigation, consultez Fonctionnalités d’IntelliTrace.