Exemple plus complexe de session gdb :
$ gcc -Wall -g boucle.c -o boucle
$ gdb ./boucle
GNU gdb 6.8-debian
...
(gdb) break main
Breakpoint 1 at 0x80483c2: file boucle.c, line 9.
(gdb) run
Starting program: ./boucle
Breakpoint 1, main () at boucle.c:9
9 for(i=0;i<10;i++) tab[i]=carre(i);
(gdb) watch i
Hardware watchpoint 3: i
(gdb) continue
Continuing.
Hardware watchpoint 4: i
Old value = 134513753
New value = 0
0x080483e1 in main () at boucle.c:9
9 for(i=0;i<10;i++) tab[i]=carre(i);
(gdb) c
Continuing.
Hardware watchpoint 4: i
Old value = 0
New value = 1
0x080483e1 in main () at boucle.c:9
9 for(i=0;i<10;i++) tab[i]=carre(i);
(gdb) next
Hardware watchpoint 4: i
Old value = 2
New value = 3
0x080483e1 in main () at boucle.c:9
9 for(i=0;i<10;i++) tab[i]=carre(i);
(gdb) step
carre (n=4) at boucle.c:4
4 int carre(int n){ return n*n; }
(gdb) print n
$3 = 3
(gdb) c
Continuing.
Hardware watchpoint 4: i
Old value = 3
New value = 4
0x080483e1 in main () at boucle.c:9
9 for(i=0;i<10;i++) tab[i]=carre(i);
(gdb) print i
$4 = 4
(gdb) quit
The program is running. Exit anyway? (y or n) y