如何在附加了gdb的情况下运行R脚本?

Fra*_*ank 5 debugging gdb r

我有一个R脚本,该脚本通常从命令行启动并带有参数:

./script.R --width=10
Run Code Online (Sandbox Code Playgroud)

它使用Rscript作为解释器:

#!/usr/bin/env Rscript 
Run Code Online (Sandbox Code Playgroud)

不幸的是,它在使用R执行我在R中编译的C代码时给了我一个分段错误.C("compiled_function")

那么如何Rgdb连接调试器的情况下运行脚本?

Rscript显然不知道该-d选项。

我试过了

R -d gdb --vanilla --args --width=10 < script.R
Run Code Online (Sandbox Code Playgroud)

但是,由于将传递--width=10给了调试器,所以它不起作用。什么是正确的选择?

也许我应该以R交互方式开始:

$ R -d gdb --vanilla 
Run Code Online (Sandbox Code Playgroud)

但是然后我不知道如何source编写脚本并传递参数(--width=10)。

Dir*_*tel 6

我认为一般的GNU getopt约定--用于表示其余参数。所以尝试

 R -d gdb --vanilla -- --width=10 < script.R
Run Code Online (Sandbox Code Playgroud)

否则,硬编码脚本或编译函数中的参数值。

  • 然后不要使用重定向。启动`R -d gdb`并执行`source(“ script.R”)`。 (2认同)