C#:
Utilisation d'un débogueur
Comment faire:
Imaginez que vous avez un petit programme qui ne fonctionne pas correctement :
static void Main()
{
int result = Sum(1, 2);
Console.WriteLine(result);
}
static int Sum(int a, int b)
{
return a + a; // Oups, devrait être a + b
}
En utilisant le débogueur de Visual Studio, définissez un point d’arrêt en cliquant sur la marge de gauche à côté de return a + a;
. Lorsque vous exécutez le programme (avec F5), l’exécution s’arrêtera là. Survolez les variables pour inspecter leurs valeurs, ou utilisez la fenêtre Immédiate pour évaluer des expressions. Vous verrez que a
est 1 et b
est 2, mais a + a
n’est pas notre somme attendue. Modifiez-le pour a + b
, continuez l’exécution (F5), et voilà, la console affiche 3.
Approfondissement
L’histoire du débogage remonte aux années 1940, lorsqu’un véritable bug (un papillon) a été trouvé dans un ordinateur primitif. Les débogueurs d’aujourd’hui, comme celui de Visual Studio, offrent une suite de fonctionnalités puissantes, incluant les points d’arrêt, l’exécution pas à pas, les fenêtres d’observation, et plus encore.
Parmi les alternatives au débogueur de Visual Studio, il y a des options open-source comme GDB pour les langages de style C ou pdb pour Python, et des IDE multiplateformes comme JetBrains Rider ou VS Code qui proposent des outils de débogage pour C# et d’autres langages.
Lorsque vous plongez dans l’implémentation d’un débogueur, vous examinez un programme qui se connecte au processus de votre application. Il interprète le code machine, gère l’état de la mémoire et contrôle le flux d’exécution. C’est du lourd qui est crucial pour un débogage efficace, c’est pourquoi le mode débogage est souvent plus lent que le mode de lancement où ces crochets n’existent pas.