Debugging 如何在连接gdb的情况下运行R脚本?

Debugging 如何在连接gdb的情况下运行R脚本?,debugging,r,gdb,Debugging,R,Gdb,我有一个R脚本,它通常从命令行开始,并带有参数: ./script.R --width=10 它使用Rscript作为解释器: #!/usr/bin/env Rscript 不幸的是,当它使用.C(“compiled_function”)在R中执行编译的C代码时,它给了我一个分段错误 那么,如何在附加了gdb调试器的情况下运行R脚本呢 Rscript显然不知道-d选项 我试过这个 R -d gdb --vanilla --args --width=10 < script.R 但是我

我有一个R脚本,它通常从命令行开始,并带有参数:

./script.R --width=10
它使用Rscript作为解释器:

#!/usr/bin/env Rscript 
不幸的是,当它使用
.C(“compiled_function”)
在R中执行编译的C代码时,它给了我一个分段错误

那么,如何在附加了
gdb
调试器的情况下运行
R
脚本呢

Rscript
显然不知道
-d
选项

我试过这个

R -d gdb --vanilla --args --width=10 < script.R

但是我不知道如何
源代码
我的脚本并传递参数(
--width=10
)。

我认为通用的GNU getopt约定是使用
--
来表示剩余的参数。所以试试看

R-dgdb--vanilla--width=10

否则,在脚本或编译函数中硬连接参数值。

当我尝试这样做时,出于某种原因,script.R中的R代码由gdb解释,这是一个混乱。必须有一种方法来调用这个东西,而不必在我的脚本中硬连接参数值(我实际上有很多参数,不仅仅是我在示例中给出的参数)。然后不要使用重定向。启动
R-dgdb
并改为执行
source(“script.R”)
。但是如何将选项传递给脚本呢?如果我只是说
source(“script.R”)
它会抱怨没有设置值(“width”,等等)。也许会将它们设置在最上面?
$ R -d gdb --vanilla 
 R -d gdb --vanilla -- --width=10 < script.R