如何在Eclipse中调试R包(使用C和C ++代码)?

时间:2014-03-24 17:01:37

标签: c++ eclipse r debugging statet

在Visual Studio中,我们可以使用“attach to process”来调试DLL。

有没有办法在Eclipse / StatET中调试R包的C / C ++代码(比如this example of debugging external code linked to Scilab)?

2 个答案:

答案 0 :(得分:8)

以下步骤适用于Eclipse-CDT C / C ++(LUNA)。

  1. 使用调试信息编译R(3.2)。使用SVN下载源的步骤可以在R安装指南中找到。
  2. $./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来添加调试符号并确保comiple优化不会阻止调试。

    1. 为具有C源代码的R-package设置正确的目录结构。使用makefile而不是依赖Eclipse-StatET来构建项目。使设置更容易移植到Windows。

    2. 在命令行中安装CMD或使用Makefile将软件包安装到用户的本地R库。

    3. 在Eclipse(Luna)下创建一个" New Debug Configuration"在C / C ++应用程序下。

    4. ' Main'标签:

    5. 一个。选择一个C / C ++应用程序:

      /usr/local/lib/R/bin/exec/R

      湾项目可能指向R-package项目。

      ℃。检查"连接过程输入&输出到终端"。

      1. "论点"标签使用:
      2. --slave --vanilla --no-save

        1. Under' Environment'标签添加:
        2. 一个。 LD_LIBRARY_PATH:/ use / local / lib / R / lib

          湾R_HOME / usr / local / lib / R. 选择"将环境附加到本地环境"

          1. Under" Debugger"标签
          2. 一个。选择GDB调试器gdb

            湾如果' GDB命令设置'未显示为选项,请点击'选择其他...'在最底层。选择“旧版创建处理启动器”'。这样做现在将显示选择GDB命令集的选项:使用协议mi选择标准。

            1. 来源"来源"标签
            2. 一个。使用R source(可选)〜/ Downloads / R

              添加R目录的绝对路径

              湾添加包src目录和任何其他依赖库的绝对路径。

              1. 单击“调试”。

答案 1 :(得分:1)

你应该先运行R.然后你应该运行包并将它附加到R进程(调试配置> C / C ++附加到应用程序)。 R和eclipse都必须以root身份运行。

共享库必须是... dll或...的地址,因此,这是R包库。

注1:您应该设置eclipse来编译R包。

http://blog.fellstat.com/?p=170