Chapitre 6. Programmation en R
285
Astuce
Notez que GDB peut ˆ etre appel´ e avec certaines options. Par exemple :
--directory=DIR
Chercher des fichiers source dans DIR.
--pid=PID
Attacher au processus actif PID.
Renvoi
Vous pourrez consulter avec profit la documentation de GDB, disponible
` a l’adresse http://sourceware.org/gdb/current/onlinedocs/gdb.
Astuce
Il est possible d’installer/compiler un package (appelons-le PKG par la
suite) avec des informations de d´ ebogage (´ equivalent ` a l’utilisation du flag
-g vu pr´ ec´ edemment). Pour cela, il faut commencer par cr´ eer un fichier
nomm´ e Makevars.win (Makevars sous Linux) dans un sous-dossier nomm´ e
.R/ de son r´ epertoire %HOME%. Ce fichier devra contenir les lignes suivantes :
## for C++ code
CXXFLAGS=-g
Pour cela, vous pouvez par exemple taper : WINDOWS+R, cmd,
ENTR ´ EE, cd %HOME%, ENTR ´ EE, mkdir .R, ENTR ´ EE, cd .R, ENTR ´ EE,
echo CXXFLAGS=-g > Makevars.win, ENTR ´ EE. Ensuite, il suffira de
cr´ eer le package PKG (` a partir des sources au moyen de la commande
R CMD INSTALL --build --debug PKG), de l’installer, puis d’utiliser
l’une des m´ ethodes de d´ ebogage pr´ esent´ ees pr´ ec´ edemment. Notez que
le fichier NAMESPACE de votre package PKG devra contenir la ligne :
useDynLib("PKG") afin que le fichier DLL (ou .so) soit automatiquement
charg´ e lorsque vous lancerez dans R la commande : require("PKG"). En
cas d’´ echec de cette proc´ edure, vous pouvez toujours utiliser la fonction
dyn.load() pour charger « ` a la main » votre librairie depuis l’endroit o` u
elle a ´ et´ e install´ ee.
Astuce
Il est ´ egalement possible de faire afficher le contenu d’un objet de type
SEXP (notons s cet objet). Pour cela, vous pouvez soit inclure dans votre
code C/C++ l’instruction PrintValue(s);. Ainsi, d` es que cette instruction
sera rencontr´ ee pendant l’ex´ ecution de votre code, le contenu de l’objet s
sera affich´ e dans la console de R. Vous pouvez aussi utiliser l’instruction
285
Astuce
Notez que GDB peut ˆ etre appel´ e avec certaines options. Par exemple :
--directory=DIR
Chercher des fichiers source dans DIR.
--pid=PID
Attacher au processus actif PID.
Renvoi
Vous pourrez consulter avec profit la documentation de GDB, disponible
` a l’adresse http://sourceware.org/gdb/current/onlinedocs/gdb.
Astuce
Il est possible d’installer/compiler un package (appelons-le PKG par la
suite) avec des informations de d´ ebogage (´ equivalent ` a l’utilisation du flag
-g vu pr´ ec´ edemment). Pour cela, il faut commencer par cr´ eer un fichier
nomm´ e Makevars.win (Makevars sous Linux) dans un sous-dossier nomm´ e
.R/ de son r´ epertoire %HOME%. Ce fichier devra contenir les lignes suivantes :
## for C++ code
CXXFLAGS=-g
Pour cela, vous pouvez par exemple taper : WINDOWS+R, cmd,
ENTR ´ EE, cd %HOME%, ENTR ´ EE, mkdir .R, ENTR ´ EE, cd .R, ENTR ´ EE,
echo CXXFLAGS=-g > Makevars.win, ENTR ´ EE. Ensuite, il suffira de
cr´ eer le package PKG (` a partir des sources au moyen de la commande
R CMD INSTALL --build --debug PKG), de l’installer, puis d’utiliser
l’une des m´ ethodes de d´ ebogage pr´ esent´ ees pr´ ec´ edemment. Notez que
le fichier NAMESPACE de votre package PKG devra contenir la ligne :
useDynLib("PKG") afin que le fichier DLL (ou .so) soit automatiquement
charg´ e lorsque vous lancerez dans R la commande : require("PKG"). En
cas d’´ echec de cette proc´ edure, vous pouvez toujours utiliser la fonction
dyn.load() pour charger « ` a la main » votre librairie depuis l’endroit o` u
elle a ´ et´ e install´ ee.
Astuce
Il est ´ egalement possible de faire afficher le contenu d’un objet de type
SEXP (notons s cet objet). Pour cela, vous pouvez soit inclure dans votre
code C/C++ l’instruction PrintValue(s);. Ainsi, d` es que cette instruction
sera rencontr´ ee pendant l’ex´ ecution de votre code, le contenu de l’objet s
sera affich´ e dans la console de R. Vous pouvez aussi utiliser l’instruction
