284
Le logiciel R - Maˆ ıtriser le langage
Allez ensuite dans le menu Misc/Interrompre vers le d´ ebuggueur de R, ce
qui vous redonnera la main dans GDB (fenˆ etre noire), o` u vous pourrez taper :
(gdb) info share
(gdb) break inv.cpp:1
(gdb) signal 0
La premi` ere instruction (info share) vous permettra de constater que votre
librairie (inv.dll) a bien ´ et´ e charg´ ee, la deuxi` eme (break inv.cpp:1) permet
d’ajouter un point d’arrˆ et sur la premi` ere ligne (ex´ ecutable) du fichier inv.cpp,
la derni` ere (signal 0) vous permet de sortir de GDB pour revenir dans R. Tapezy :
> A <- matrix(rnorm(4),nrow=2)
> source("inv.R") # Fichier créé en page 271.
> inv(A)
Lorsque le point d’arrˆ et va ˆ etre recontr´ e par le processeur, l’ex´ ecution du code
va ˆ etre suspendue. Vous pouvez maintenant taper les instructions ci-apr` es dans
GDB. La premi` ere (list) affiche les prochaines lignes devant ˆ etre ex´ ecut´ ees,
la deuxi` eme (next) permet de passer (successivement) `
a la ligne suivante, la
troisi` eme (print nrow[0]) affiche la valeur de nrow[0], et la derni` ere continue
l’ex´ ecution du code jusqu’` a la fin ou bien jusqu’au prochain point d’arrˆ et.
(gdb) list
(gdb) next
(gdb) print nrow[0]
(gdb) continue
Vous ˆ etes de nouveau dans R et vous voyez s’afficher le r´ esultat de l’appel
inv(A). Vous pouvez taper les instructions suivantes pour v´ erifier que le r´ esultat
est identique avec la fonction solve(), et enfin pour quitter R.
> solve(A)
> q()
Linux
Sous Linux, on lance dans un terminal la commande :
R -d gdb
` a la place de gdb Rgui.
Une autre fa¸ con de proc´ eder consiste ` a utiliser les deux instructions suivantes :
export R_HOME=/usr/lib64/R
gdb /usr/lib64/R/bin/exec/R
Par ailleurs, pour revenir de R vers GDB, on utilise la combinaison de touches
CTRL+C. De plus, notez que pour aller de GDB vers R, apr` es avoir tap´ e
signal 0 (ou de fa¸ con ´ equivalente c), il faut presser la touche ENTR ´ EE.
Le logiciel R - Maˆ ıtriser le langage
Allez ensuite dans le menu Misc/Interrompre vers le d´ ebuggueur de R, ce
qui vous redonnera la main dans GDB (fenˆ etre noire), o` u vous pourrez taper :
(gdb) info share
(gdb) break inv.cpp:1
(gdb) signal 0
La premi` ere instruction (info share) vous permettra de constater que votre
librairie (inv.dll) a bien ´ et´ e charg´ ee, la deuxi` eme (break inv.cpp:1) permet
d’ajouter un point d’arrˆ et sur la premi` ere ligne (ex´ ecutable) du fichier inv.cpp,
la derni` ere (signal 0) vous permet de sortir de GDB pour revenir dans R. Tapezy :
> A <- matrix(rnorm(4),nrow=2)
> source("inv.R") # Fichier créé en page 271.
> inv(A)
Lorsque le point d’arrˆ et va ˆ etre recontr´ e par le processeur, l’ex´ ecution du code
va ˆ etre suspendue. Vous pouvez maintenant taper les instructions ci-apr` es dans
GDB. La premi` ere (list) affiche les prochaines lignes devant ˆ etre ex´ ecut´ ees,
la deuxi` eme (next) permet de passer (successivement) `
a la ligne suivante, la
troisi` eme (print nrow[0]) affiche la valeur de nrow[0], et la derni` ere continue
l’ex´ ecution du code jusqu’` a la fin ou bien jusqu’au prochain point d’arrˆ et.
(gdb) list
(gdb) next
(gdb) print nrow[0]
(gdb) continue
Vous ˆ etes de nouveau dans R et vous voyez s’afficher le r´ esultat de l’appel
inv(A). Vous pouvez taper les instructions suivantes pour v´ erifier que le r´ esultat
est identique avec la fonction solve(), et enfin pour quitter R.
> solve(A)
> q()
Linux
Sous Linux, on lance dans un terminal la commande :
R -d gdb
` a la place de gdb Rgui.
Une autre fa¸ con de proc´ eder consiste ` a utiliser les deux instructions suivantes :
export R_HOME=/usr/lib64/R
gdb /usr/lib64/R/bin/exec/R
Par ailleurs, pour revenir de R vers GDB, on utilise la combinaison de touches
CTRL+C. De plus, notez que pour aller de GDB vers R, apr` es avoir tap´ e
signal 0 (ou de fa¸ con ´ equivalente c), il faut presser la touche ENTR ´ EE.
