[Rcpp-devel] Need Help: debugging Rcpp with gdb on Windows 8

Kumar Aiyer kumar_neel at yahoo.com
Tue Sep 23 05:16:28 CEST 2014


I am developing a module RcppSSC which is an R wrapper for a C library for Solar Energy from NREL.



I am using RStudio to build and install the package for debugging. 



Build session output shows that debug flags are enabled
============================================

 ==> Rcmd.exe INSTALL --preclean --no-multiarch --with-keep.source RcppSSC

* installing to library 'C:/Users/kumar_000/Documents/R/win-library/3.1'
* installing *source* package 'RcppSSC' ...
** libs
g++ -m64 -I"C:/PROGRA~1/R/R-31~1.1/include" -DNDEBUG -I. -I"C:/SAM/ssc-sdk-2014-1-21"   -I"C:/Users/kumar_000/Documents/R/win-library/3.1/Rcpp/include" -I"d:/RCompile/CRANpkg/extralibs64/local/include"     -g -O3 -Wall -pipe -pedantic -Wno-variadic-macros -c RcppSSC.cpp -o RcppSSC.o
g++ -m64 -shared -s -static-libgcc -o RcppSSC.dll tmp.def RcppSSC.o -LC:/SAM/ssc-sdk-2014-1-21/win64/ -lssc -Ld:/RCompile/CRANpkg/extralibs64/local/lib/x64 -Ld:/RCompile/CRANpkg/extralibs64/local/lib -LC:/PROGRA~1/R/R-31~1.1/bin/x64 -lR
installing to C:/Users/kumar_000/Documents/R/win-library/3.1/RcppSSC/libs/x64

=============================================
Running the code in Rstudio
=============================================
test_script.r
==========
require(Rcpp)
require(RcppSSC)

ssc_module <- Module( "RcppSSC","RcppSSC")
ssc <- ssc_module$RcppSSC
s <- new( ssc, "pvwattsv1" )
RStudio crashes "R Session Aborted. R encountered a fatal error. The session was terminated"

=============================================

Running the code in gdb

I used the steps outlines in the following web page and face the same issues. Cannot get symbolic debug information in gdb or the correct source file

I used the following steps

1) set DEBUG=T 
2) C:\Rtools\gcc-4.6.3\bin64\gdb.exe rgui

3) type cont in gdb
4) load the script test_script.r in the R session
4) Execute the R code until the line s <- new( ssc, "pvwattsv1" )
in the R 
5) At this stage code runs fine. 
6) I checked the object ssc created in R.
7) Results are as follows 

> ssc
C++ class 'RcppSSC' <00000000076FD250>
Constructors:
    RcppSSC(std::string)
        docstring : constructor with module name
 
8) Next I set a breakpoint in gdb in the function init which is called from the public constructor. I do this by choosing "Misc -> break to debuger" from the menu in RGui
9) I then execute "break init" in gdb
10) I get the following output which makes me to believe that no symbolic information was read in. NEED HELP ON THIS? Why is this happening despite compiling with the -g flag


Program received signal SIGTRAP, Trace/breakpoint trap.
0x000000006c714b01 in R_gl_tab_set ()
   from C:\Program Files\R\R-3.1.1\bin\x64\R.dll
(gdb) break init
Function "init" not defined.
Make breakpoint pending on future shared library load? (y or [n]) y

Breakpoint 1 (init) pending.
(gdb)

11)  Next type cont in gdb and get back to RGui
12) In RGui execute the line 
s <- new( ssc, "pvwattsv1" )


13) In gdb, I get
(gdb) cont
Continuing.

Program received signal SIGSEGV, Segmentation fault.
0x000000006b4c2508 in _rcpp_module_boot_RcppSSC ()
   from C:\Users\kumar_000\Documents\R\win-library\3.1\RcppSSC\libs\x64\RcppSSC.
dll
(gdb)

So, no symbolic tables and no way to see which line of code SEGVs. Need help.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.r-forge.r-project.org/pipermail/rcpp-devel/attachments/20140922/8a5daad9/attachment-0001.html>


More information about the Rcpp-devel mailing list