### 8.7.1 Ouvrir le débuggeur : `debug`

`debug` a comme argument une fonction et ses arguments.
`debug` ouvre l’écran de la fenêtre de mise au point (ou débugger) avec sa barre de boutons. On a la possibilité :

- d’exécuter le programme au pas à pas avec le bouton `sst` qui inscrit la commande `sst()` dans la ligne de commande,
- de mettre des points d’arrêts (breakpoint) avec `break` (ou la commande `breakpoint`),
- d’aller directement avec`cont` à une ligne précise marquée par un point d’arrêt (ou la commande `cont`),
- de voir avec `watch` les variables que l’on désire surveiller (ou la commande `watch`),
- d’exécuter au pas à pas les instructions d’une fonction utilisateur avec `dans` qui inscrit la commande `sst_in()` dans la ligne de commande, ou encore
- de sortir brutalement du débuggeur avec `tuer` (ou la commande `kill`).

On tape par exemple :
`debug(pgcd(15,25))`.
Il faut bien sûr que le programme `pgcd` existe.
Par exemple on a tapé :

    pgcd(a,b):={
    local r;
    while(b!=0) {
    r:=irem(a,b);
    a:=b;
    b:=r;
    }
    return a;
    }

Puis si on veut observer les variables `a` et `b`, on clique sur `watch` : `watch` s’inscrit dans la ligne `eval` et on compléte cette ligne en `watch(a)` puis `enter`, puis on clique sur `watch` et on compléte `watch` en `watch(b)` puis `enter`.
Ensuite on clique sur `sst`, et on voit à chaque ètape (la ligne qui est exécutée est en surbrillance) les valeurs de `a` et `b` dans la zone située en dessous de la barre des boutons.