Chapitre 6. Programmation en R
289
6.6.4.2 D´ ebogage avec DDD
Il faut commencer par lancer Xming (ou un outil ´ equivalent), ce qui devrait
entraˆ ıner l’affichage de son icone dans la barre des tˆ aches. On lance ensuite
la fenˆ etre de terminal de Cygwin
, dans laquelle on tape les instructions
suivantes :
$ export DISPLAY=localhost:0.0
$ cd vers le repertoire contenant les fichiers sources et les DLLs
$ ddd Rgui
Vous devrez possiblement ˆ etre patient pour que DDD finisse par s’ouvrir.
Linux
Sous Linux, la seule chose `
a faire est de taper l’instruction R -d ddd.
On tape alors les instructions suivantes dans GDB (panneau inf´ erieur) :
(gdb) dir $cwd
(gdb) run
La premi` ere instruction indique `
a GDB de rechercher les fichiers sources dans le
r´ epertoire courant (celui qui serait donn´ e par la commande pwd), contournant
ainsi un probl` eme de gestion hasardeuse des chemins Windows. La deuxi` eme
instruction (on peut aussi cocher la case : Program/Run in Execution Window,
et cliquer sur Program/Run, puis sur Run) lance R, dans lequel on tape :
> dyn.load("inv.dll")
Notez que le fichier inv.dll a ´ et´ e cr´ e´ e avec des informations de d´ ebogage comme
cela est indiqu´ e `
a la page 283. On va alors dans le menu Misc/Interrompre
vers le d´ ebugger, ce qui nous redonne la main vers le logiciel DDD. On va
alors dans le menu File/Open source... et on ouvre le fichier inv.cpp. On
coche aussi l’entr´ ee Data Window du menu View (et ´ eventuellement l’entr´ ee
Display Local Variables du menu Data, si vous ˆ etes patient !). On place ensuite
un (ou plusieurs) point(s) d’arrˆ et dans le code ` a d´ eboguer (en double-cliquant
au d´ ebut d’une ligne ou par un clic droit), par exemple en face de l’instruction M << values;. Ceci a pour effet d’afficher un signe de stop. Puis on tape
continue (ou simplement c) dans la partie inf´ erieure (gdb). Ceci nous ram` ene
vers R. Tapez-y :
> A <- matrix(rnorm(4),nrow=2)
> source("inv.R") # Fichier créé en page 271.
> inv(A)
Lorsque le (premier) point d’arrˆ et va ˆ etre rencontr´ e par le processeur, l’ex´ ecution du code va ˆ etre suspendue. Vous pouvez maintenant utiliser l’outil graphique DDD pour d´ eboguer pas ` a pas votre code.
289
6.6.4.2 D´ ebogage avec DDD
Il faut commencer par lancer Xming (ou un outil ´ equivalent), ce qui devrait
entraˆ ıner l’affichage de son icone dans la barre des tˆ aches. On lance ensuite
la fenˆ etre de terminal de Cygwin
, dans laquelle on tape les instructions
suivantes :
$ export DISPLAY=localhost:0.0
$ cd vers le repertoire contenant les fichiers sources et les DLLs
$ ddd Rgui
Vous devrez possiblement ˆ etre patient pour que DDD finisse par s’ouvrir.
Linux
Sous Linux, la seule chose `
a faire est de taper l’instruction R -d ddd.
On tape alors les instructions suivantes dans GDB (panneau inf´ erieur) :
(gdb) dir $cwd
(gdb) run
La premi` ere instruction indique `
a GDB de rechercher les fichiers sources dans le
r´ epertoire courant (celui qui serait donn´ e par la commande pwd), contournant
ainsi un probl` eme de gestion hasardeuse des chemins Windows. La deuxi` eme
instruction (on peut aussi cocher la case : Program/Run in Execution Window,
et cliquer sur Program/Run, puis sur Run) lance R, dans lequel on tape :
> dyn.load("inv.dll")
Notez que le fichier inv.dll a ´ et´ e cr´ e´ e avec des informations de d´ ebogage comme
cela est indiqu´ e `
a la page 283. On va alors dans le menu Misc/Interrompre
vers le d´ ebugger, ce qui nous redonne la main vers le logiciel DDD. On va
alors dans le menu File/Open source... et on ouvre le fichier inv.cpp. On
coche aussi l’entr´ ee Data Window du menu View (et ´ eventuellement l’entr´ ee
Display Local Variables du menu Data, si vous ˆ etes patient !). On place ensuite
un (ou plusieurs) point(s) d’arrˆ et dans le code ` a d´ eboguer (en double-cliquant
au d´ ebut d’une ligne ou par un clic droit), par exemple en face de l’instruction M << values;. Ceci a pour effet d’afficher un signe de stop. Puis on tape
continue (ou simplement c) dans la partie inf´ erieure (gdb). Ceci nous ram` ene
vers R. Tapez-y :
> A <- matrix(rnorm(4),nrow=2)
> source("inv.R") # Fichier créé en page 271.
> inv(A)
Lorsque le (premier) point d’arrˆ et va ˆ etre rencontr´ e par le processeur, l’ex´ ecution du code va ˆ etre suspendue. Vous pouvez maintenant utiliser l’outil graphique DDD pour d´ eboguer pas ` a pas votre code.
