Saisai, I haven't watched the specific video Sandip posted, but from the title it looks to be correct. Running R with/in gdb is the correct way to debug C code in R packages.
One thing to watch out for: The default compiler flags for C/C++ code in R packages call for substantial optimization (I believe it's '-O2'). This mess with the execution order of some instructions, making step by step debugging annoying. Also, it will optimize out values that may be important to your debugging. To fix this you'll need to look into how Makevars files work, and specifically how to set/override compiler flags in them. There were some deeper issues with what you asked, though. Sourcing an R file will have no effect on a package in the namespace at all unless you are using something like ESS's developer mode which sources the file into the package namespace. Furthermore, C code included in R packages is only compiled at installation from source or binary build time. Even if you are using a developer mode, sourcing an R file will have no effect on a) the shared object library (DLL/so/dylib) available in the R session, nor which shared objects are associated with the package. There are ways to unload shared libraries within an R session, but personally I tend to avoid them. The best way of being absolutely sure that the right shared library is getting used is to reinstall the package, then close the R session and restart. I would encourage you to look into how R compiles and interacts with native code in and out of packages before trying to tackle something like this directly. It's all in the Writing R extensions manual here: http://cran.r-project.org/doc/manuals/R-exts.html Hope that helps, ~G On Thu, Jan 16, 2014 at 8:04 PM, Sandip Nandi <sanna...@umail.iu.edu> wrote: > Hi , > > The video may help you > > http://vimeo.com/11937905 > > Thanks, > Sandip > > > On Thu, Jan 16, 2014 at 4:17 PM, Ma, Saisai - maysy020 < > saisai...@mymail.unisa.edu.au> wrote: > > > Hi all, > > > > Sorry to bother you. > > > > I am a beginner in R programming. I have encountered some problems when I > > modified a R package with C code. > > I would like to modified the C code within the R package, and want to > > debug the C program. But I have no idea how to debug this kind of R > package. > > > > In the package, a R file named aaa.R use the interface .call(bbb.c, ...) > > to call the C code named bbb.c. > > And what I did is that I resourced aaa.R and ran it in R Stdio again, > > after modifying bbb.c. But there is nothing happened. > > I am very sure that the all the path of R file and C file is correct. And > > I am using Windows operating system. > > > > Could anyone give me a few pointers on how to debug R packages (or > > extensions with C++/C code)? If possible, Could you please give me an > > simple example or some command lines? > > > > > > Regards, > > Saisai > > > > > > [[alternative HTML version deleted]] > > > > ______________________________________________ > > R-devel@r-project.org mailing list > > https://stat.ethz.ch/mailman/listinfo/r-devel > > > > [[alternative HTML version deleted]] > > ______________________________________________ > R-devel@r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-devel > -- Gabriel Becker Graduate Student Statistics Department University of California, Davis [[alternative HTML version deleted]] ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel