Exemple d'utilisation de GDB

L’objectif de cette annexe est d’illustrer sur un cas très simple comment utiliser gdb (ou lldb) pour déboguer son programme.

Utilisation de gdb

  1. Une fois le programme écrit, il faut obligatoirement le compiler avec l’option -g (pour inclure les informations de debug).
  2. Lancer le débogueur avec en argument notre programme (par défaut a.out).
  3. Lancer l’exécution du programme via run (ou r).
  4. Identifier les bugs ou erreurs
  5. Quitter le programme via quit (ou q)

Comment identifier les erreurs

De manière générale,le programme s’exécute jusqu’à atteindre:

Points d’arrêts

Affichage des variables

Pile d’exécution

Pour aller plus loin

Vous pouvez consulter le lien suivant https://www.rocq.inria.fr/secret/Anne.Canteaut/COURS_C/gdb.html qui contient d’autres commandes.

Mise en application

Il s’agit d’un programme qui contient plusieurs erreurs (variable non initialisée, passage d’une valeur au lieu du pointeur). Nous allons illustrer comment utiliser gdb pour trouver ces erreurs.

Programme exemple

#include <stdio.h>

int somme (int n)
{
    int result = 0;
    for (unsigned int i = 0; i < n; i++)
    {
        result += i;
    }
    return result;
}

void get_from_user (int n)
{
    do
    {
        printf ("Entrer un entier (>= 0)\n");
        scanf ("%d", &n);
    } while (n < 0);
}

int main ()
{
    int value;
    get_from_user (value);
    printf ("Somme = %d\n", somme (value));
    return 0;
}

Utilisation de gdb