C++:
Att använda en debugger

Hur gör man:

C++ integreras med debuggers som GDB eller Visual Studio-debuggern. Här är ett litet exempel med GDB:

#include <iostream>

int main() {
    int a = 5;
    int b = 0;
    int c = a / b; // Hoppsan, division med noll!
    std::cout << c << std::endl;
    return 0;
}

// Kompilera med:
// g++ -g -o my_program my_program.cpp

// Kör med debugger:
// gdb ./my_program

När du har startat GDB kan du sätta breakpoints, stega igenom din kod, inspektera variabler och mycket mer. Om du kör ovanstående bör du se att ditt program kraschar på grund av division med noll.

Fördjupning

Debugging har sina rötter i programmeringens tidiga dagar, där det bokstavligen var nödvändigt att ta bort buggar (insekter!) från hårdvaran. Sedan dess har debuggningsverktyg utvecklats till komplexa och kraftfulla mjukvaror, avgörande för utveckling.

Alternativ till GDB för C++ inkluderar LLDB, samt IDE-integrerade debuggers som de i Visual Studio, CLion eller Eclipse. Dessa moderna miljöer erbjuder grafiska gränssnitt som gör debugging mindre skrämmande.

Implementeringsdetaljer om att använda en debugger beror ofta på din utvecklingsmiljö:

  • Kommandoradsdebuggers (GDB, LLDB) kräver bekantskap med terminalkommandon och innebär ofta en brantare inlärningskurva.
  • Grafiska debuggers förenklar processen genom att tillåta peka-och-klicka-interaktioner för att sätta breakpoints, stega igenom kod och bevaka variabler.

Att förstå din debuggers kapaciteter, såsom villkorliga breakpoints, watchpoints eller utvärdering av uttryck, kan avsevärt förbättra din effektivitet i diagnostisering av problem.

Se också