在Visual Studio中,我们可以使用“附加到进程”来调试DLL。
在Eclipse/StatET中是否有办法调试R包的C/C++代码(即类似于这个链接到Scilab外部代码调试的示例)?
在Eclipse/StatET中是否有办法调试R包的C/C++代码(即类似于这个链接到Scilab外部代码调试的示例)?
$./configure --enable-R-shlib --with-valgrind-instrumentation=2 --with-system-valgrind-headers --CFLAGS='-g -O0 -fPIC' FFLAGS='-g -O0 -fPIC' CXXFLAGS='-g -O0 -fPIC' FCFLAGS='-g -O0 -fPIC'
$make
$sudo make install
这将在/usr/local/lib/R
下安装R。
注意:需要使用-g和-O添加调试符号,并确保编译优化不会阻止调试。
为具有C源代码的R包设置适当的目录结构。使用Makefile而不是依赖于Eclipse-StatET构建项目,使设置更易于在Windows上移植。
在命令行或使用Makefile下运行R CMD install,将包安装到用户的本地R库中。
在Eclipse(Luna)下创建一个“新的调试配置”在C/C++应用程序下。
在“Main”选项卡下:
a. 选择一个C/C++应用程序:
/usr/local/lib/R/bin/exec/R
b. 项目可能指向R包项目。
c. 选中“连接进程输入和输出到终端”。
--slave --vanilla --no-save
a. LD_LIBRARY_PATH:/use/local/lib/R/lib
b. R_HOME /usr/local/lib/R 选择“将环境附加到本机环境”
a. 选择GDB调试器gdb
b. 如果“GDB命令集”未显示为选项,请单击底部的“选择其他...”。选择“Legacy Create Process Launcher”。这样将显示选择GDB命令集的选项:选择带有协议mi
的标准版。
a. 添加R源目录的绝对路径(可选)~/Downloads/R
b. 添加包含包src目录和任何其他依赖库的绝对路径。