【问题标题】:How to run R script with gdb attached?如何在附加了 gdb 的情况下运行 R 脚本?
【发布时间】:2010-09-01 13:30:12
【问题描述】:

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

./script.R --width=10

它使用 Rscript 作为解释器:

#!/usr/bin/env Rscript 

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

那么如何运行我的R 脚本并附加gdb 调试器?

Rscript 显然不知道-d 选项。

我试过了

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

但它没有工作,因为它将--width=10 传递给调试器。什么是正确的调用?

也许我应该以交互方式启动R

$ R -d gdb --vanilla 

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

【问题讨论】:

    标签: debugging r gdb


    【解决方案1】:

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

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

    否则,将参数值硬连线到您的脚本或编译函数中。

    【讨论】:

    • 当我尝试这样做时,出于某种原因,script.R 中的 R 代码由 gdb 解释,这是一团糟。必须有一种方法可以在不硬连线脚本中的参数值的情况下调用这个东西(我实际上有很多参数,而不仅仅是我在示例中给出的那个)。
    • 那么不要使用重定向。启动R -d gdb 并改为使用source("script.R")
    • 但是我怎样才能将选项传递给脚本呢?如果我只是说source("script.R"),它会抱怨没有设置值(“宽度”等)。
    • 也许把它们放在最上面?
    猜你喜欢
    • 1970-01-01
    • 2019-03-27
    • 2014-02-28
    • 2018-12-10
    • 1970-01-01
    • 2021-12-18
    • 1970-01-01
    • 2016-04-17
    • 2011-06-26
    相关资源
    最近更新 更多