R不识别命令行选项。 (警告:未知选项' -d')

时间:2016-06-14 15:28:03

标签: r windows gdb

我正在尝试使用gdb以与视频中指定的相同方式调试R包中的已编译代码:https://vimeo.com/11937905Writing R Extensions第4.4节。

这些消息来源说要使用该命令 启动R时R -d gdb。但是,每当我尝试这样做时,我会收到一条消息,说WARNING: unknown option '-d'并且R在正常条件下启动。 为什么不识别-d标志?我使用的是Windows 10。

1 个答案:

答案 0 :(得分:0)

@MatthewLueder终于发现自己在Windows上进行调试无法像在Linux上进行调试

R for Windows FAQ

中描述了一种方法

-d中缺少R参数的主要原因似乎是 Windows无法向进程发送信号来中断执行并将控制权传递给{{1 }})调试器

  • 在不中断R的情况下,您无法设置断点。
  • 如果不将R启动到R控制台中,则无法加载要调试的库(不弄脏手)。

因此,Windows上的R提供了一种使用gdb而非RGui的解决方法:

R

启动gdb /path/to/R-3.x.x/bin/x64/Rgui.exe (gdb) run 后,您进入R外壳并可以加载软件包 包含要调试的DLL。

要设置调试的断点,您可以通过菜单项来中断R使其进入调试器,该菜单项仅在RGuiRGui开始的情况下可见:

enter image description here

现在,您可以通过gdb在代码中设置断点,输入b a_function_name继续执行R,在R中调用该函数并添加代码:c显示断点命中和 您可以进行调试(逐步执行代码并打印变量值)。

PS:由于要查看gdb中R变量或Rcpp数据类型的当前值非常困难,因此我目前正在开发R包以改善R包中C ++代码的调试: https://github.com/aryoda/R_CppDebugHelper