C#:
Korzystanie z debugera
Jak to zrobić:
Wyobraź sobie, że masz mały program, który nie działa prawidłowo:
static void Main()
{
int result = Sum(1, 2);
Console.WriteLine(result);
}
static int Sum(int a, int b)
{
return a + a; // Ojej, powinno być a + b
}
Używając debugera Visual Studio, ustaw punkt przerwania klikając na lewym marginesie obok return a + a;
. Gdy uruchomisz program (za pomocą F5), wykonanie zostanie w tym miejscu wstrzymane. Najedź kursorem na zmienne, aby zbadać ich wartości, lub użyj natychmiastowego okna (Immediate Window), aby ocenić wyrażenia. Zobaczysz, że a
to 1 i b
to 2, ale a + a
to nie suma, której się spodziewaliśmy. Zmień to na a + b
, kontynuuj uruchamianie (F5), i voila, konsola wyświetli 3.
Dogłębna analiza
Historia debugowania sięga lat 40. XX wieku, kiedy to w jednym z wczesnych komputerów znaleziono prawdziwego robaka (ćmę). Dzisiejsze debugery, takie jak ten w Visual Studio, oferują szereg potężnych funkcji, w tym punkty przerwania, wykonanie krok po kroku, okna obserwacji i wiele innych.
Alternatywy dla debugera Visual Studio obejmują opcje open-source takie jak GDB dla języków stylu C lub pdb dla Pythona, oraz wieloplatformowe IDE takie jak JetBrains Rider czy VS Code, które oferują narzędzia do debugowania dla C# i innych języków.
Gdy zagłębiasz się w implementację debuggera, patrzysz na program, który dołącza do procesu twojej aplikacji. Interpretuje kod maszynowy, zarządza stanem pamięci i kontroluje przepływ wykonania. To ciężka robota, która jest kluczowa dla skutecznego debugowania, dlatego tryb debugowania często działa wolniej niż tryb wydania, gdzie te haczyki nie istnieją.