Scilab Home page | Wiki | Bug tracker | Forge | Mailing list archives | ATOMS | File exchange
Please login or create an account
Change language to: English - Português - 日本語 - Русский
Aide de Scilab >> Scilab > Debugging > debug

debug

Lance le mode débogage de Scilab

Séquence d'appel

debug

Description

debug met Scilab en mode débogage pour les fonctions écrites en langage Scilab. The prompt becomes debug>.

Ce mode permet de définir et gérer des points d'arrêt au sein des fonctions, d'exécuter des fonctions pas à pas, de lancer des exécutions avec arrêt sur erreur, etc.

Commandes en mode débogage

h: Affiche l'aide du débogueur dans la console, quel que soit le mode de lancement de Scilab.

help: En mode Scilab standard (avec fenêtres et interfaces graphiques), ouvre le navigateur d'aide. Sinon affiche l'aide du debogueur dans la console (comme avec "h").

(q)uit: Quitte l'environnement de débogage et revient au mode normal de Scilab.

(w)here ou bt: Affiche la pile d'appel.

(e)xec, ou (r)un: Exécute une commande.

(d)isp var, ou (p)rint var: Affiche la variable var.

(c)ontinue: Poursuit l'éxécution.

(a)bort: Annule l'éxécution.

step(n)ext ou next: Poursuit l'éxécution jusqu'a l'expression suivante.

step(i)n ou in: Poursuit l'éxécution dans la sous fonction.

step(o)ut ou out: Poursuit l'éxécution jusqu'à revenir dans la fonction appelante.

(b)reakpoint ou break: breakpoint function [line [condition]] : Ajoute un point d'arrêt dans une fonction, à la ligne line indiquée. Si une condition est spécifiée, le point d'arrêt devient actif uniquement si la condition est vérifiée lors de l'éxécution.

(del)ete [n]: Supprime tous les points d'arrêt. Si n est spécifié, supprime le point d'arrêt #n

enable [n]: Active tous les points d'arrêt. Si n est spécifié, active le point d'arrêt #n.

disable [n]: Désactive tous les points d'arrêt. Si n est spécifié, désactive le point d'arrêt #n.

(s)how [n]: Affiche toutes les informations sur les points d'arrêt. Si n est spécifié, affiche les informations du point d'arrêt #n.

Déboguer un script

Déboguer une série d'instructions résidant hors de toute fonction requiert de les encapsuler dans une fonction factice. Exemple: nous souhaitons déboguer les instructions suivantes :

a = 1;
b = linspace(a, 3, 10);
c = exp(a + %i + c);

Nous devons préalablement les inscrire dans une fonction quelconque :

function script()
    a = 1;
    b = linspace(a, 3, 10);
    c = exp(a + %i + c);
endfunction

puis exécuter ce bloc function/endfunction (en mode Scilab normal) afin de définir script() dans la session Scilab. Toutes les commandes du débogueur peuvent alors être utilisée au sein de script() : points d'arrêt, avance pas à pas, etc.

Exemples

//fonction de surcharge de la fonction cosinus pour les chaînes de caractères
function v=%c_cos(val)
    printf("val : %s\n", val);
    v = cos(evstr(val));
endfunction

//appelant
function a=test_debug()
    b = cos("%pi");
    a = b * 3;
endfunction

debug
break test_debug
exec test_debug
where
stepin
disp val
continue
quit
function v=compute(val)
    v = 1;
    for i=1:val
        v = v * i;
    end
endfunction

debug
break compute 4 "i == 5"
exec compute(10)
disp val
disp i
disp v
continue
quit

Historique

VersionDescription
6.0.0 Introduction du débogueur intégré, en interface console
Scilab Enterprises
Copyright (c) 2011-2017 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Tue Jul 20 11:19:13 CEST 2021