R 无法识别命令行选项。 (警告:未知选项“-d”)

2024-01-17

我正在尝试使用 gdb 以与视频中指定的方式相同的方式调试 R 包中的编译代码:https://vimeo.com/11937905 https://vimeo.com/11937905 and 编写 R 扩展 https://cran.r-project.org/doc/manuals/r-release/R-exts.pdf第 4.4 节。

这些消息来源说使用命令R -d gdb然而,每当我尝试这样做时,我都会收到一条消息说WARNING: unknown option '-d'R在正常情况下启动。 为什么 R 无法识别 -d 标志?我使用的是 Windows 10。


正如@MatthewLueder 自己最终发现的那样在 Windows 上的调试不像在 Linux 上那样工作.

中描述了操作方法R for Windows 常见问题解答 https://cran.r-project.org/bin/windows/base/rw-FAQ.html#How-do-I-debug-code-that-I-have-compiled-and-dyn_002eload_002ded_003f

失踪的主要原因-d论证中R似乎是这样Windows 无法向进程发送信号来中断执行并将控制权传递给 (gdb) 调试器:

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

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

gdb /path/to/R-3.x.x/bin/x64/Rgui.exe
(gdb) run

启动后RGui您处于 R shell 中并且可以加载您的包 包含要调试的 DLL。

要设置断点进行调试,您可以中断 R 以闯入调试器通过一个菜单项,该菜单项仅在以下情况下可见RGui开始于gdb:

现在您可以通过以下方式在代码中设置断点b a_function_name, enter c要继续 R,请调用 R 中的函数,瞧:gdb显示断点命中和 您可以调试(单步执行代码并打印变量值)。

PS:我目前正在开发一个R包来改进R包中C++代码的调试,因为查看R变量的当前值或Rcpp中的数据类型gdb: https://github.com/aryoda/R_CppDebugHelper https://github.com/aryoda/R_CppDebugHelper

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

R 无法识别命令行选项。 (警告:未知选项“-d”) 的相关文章

随机推荐

  • Linux,需要准确的程序计时。调度程序唤醒程序

    我有一个在 Linux 系统上运行的线程 我需要以尽可能准确的时间间隔执行它 例如 每毫秒执行一次 目前 这是通过创建一个计时器来完成的 timerfd create CLOCK MONOTONIC 0 然后在结构中传递所需的睡眠时间 ti
  • 使用 R 中的 glmulti 包对 akaike 权重进行穷举搜索多元回归

    我想知道是否有人可以帮助我理解为什么当我在 R 中输入脚本时收到错误消息 对于一些背景信息 我正在研究6 个不同变量的效果 我认为是 63 种组合或模型 X 对于我的环境科学荣誉项目 在不同空间尺度上分别具有初级总产量和生态系统净产量 Y
  • 参考应用程序xml资源中的android库项目xml资源

    我有一个定义 XML 资源的 Android 库项目 让我们使用可绘制选择器作为示例 但我在字符串 样式等方面遇到问题 LibProject res drawable button selector xml 定义一个选择器 LibProje
  • Mongo 查找器和标准

    我在 Rails 应用程序中使用 MongoDB 和 Mongoid 映射器 但我不明白finders and criteria的查询 例如在 mongodb 文档中的部分Finders是查询Model all 但如果我使用它 例如User
  • 如何使用 Cypress 检查可能不存在的元素

    我正在编写 Cypress 测试来登录网站 有username and password字段和一个Submit按钮 大多数登录都很简单 但有时首先会出现一个警告对话框 必须将其关闭 我试过这个 cy get login username t
  • 浮点数在CPU内部是如何存储的?

    我是一名初学者 正在学习组装基础知识 现在 我在读这件事的时候 来到了这一段 它解释了浮点数如何存储在内存中 浮点数的指数是一个 8 位字段 允许大量或 要存储的小数 指数被解释为正数或 消极的 实际指数是 8 位字段的值减去 127 12
  • 在 python 中滚动 idxmax() ?

    我有一个 python DataFrame 其中包含一些财务数据 我正在尝试为其创建一些技术指标 我试图弄清楚如何使用移动窗口函数来加速该过程 而不是逐个元素地进行 对于每个索引 我想返回过去 30 天的最大索引 我已经实现了一个逐个元素的
  • 将列类型更改为tinyInteger

    尝试在 Laravel 5 2 迁移中将数据列类型更改为tinyInteger
  • Visual Studio 探查器输出

    我写了一个执行的小类Main 依次执行A 我预计Main 方法本身位于堆栈调用的根部 因为它是我的应用程序中最顶层的函数 所做的一切都应该执行by Main 我编写了以下代码来测试 namespace ProfilerTest class
  • 需要裁剪+调整大小约 300000 个文件。运行时间 = 4 天以上。如何加快 bash 脚本的速度?

    我正在努力创建视频间隔拍摄 我拍摄的所有照片都是以 4 3 宽高比拍摄的 jpg 图像 2592x1944 分辨率 我希望它们在 1920x1080 下均为 16 9 我写了一个小脚本来执行此操作 但过程不是很快 我花了大约 17 分钟来裁
  • 在 Xcode 4 GM 中,如何打开 LLDB?我看到的都是GDB

    在方案运行调试器弹出窗口中 它显示的只是 None 和 GDB 这是针对使用 LLVM 构建的 iPad 4 2 模拟器 你不能 用苹果员工的话说 LLDB 尚不可用于 iOS 开发 https devforums apple com me
  • 共享 php 会话

    我最近遇到了一个问题 我一直在尝试解决它 但没有运气 我试图使用 GlusterFS 在所有服务器上的多个服务器 php apache 级别上共享 php 会话 但是 尽管该会话在所有服务器上都可以访问 但一旦我访问不同的服务器 会话就不会
  • Rails 中的 session 是方法还是哈希?有点困惑

    有一个非常简单的问题 我正在做 Michael Hartl 的 Railstutorial 它讨论了使用会话方法 借助 Rails 定义的 session 方法 用户登录很简单 我们可以将 session 视为一个散列 并按如下方式分配给它
  • git log --follow,gitpython 方式

    我正在尝试访问单个文件的提交历史记录 如下所示 git log follow
  • 如何将浮点数转换为分数?

    这是一个家庭作业问题 我想编写一个函数将浮点数转换为一对整数 分子和分母 例如 float 0 5 应转换为 1 2 我正在尝试 见下文 但坦率地说 它对我来说看起来不太好 f is the input float int n 1 whil
  • 我在将列表列表放入单个列表时遇到问题

    我正在编写一个解决方案 使用递归计算列表中数字之间的距离 但一直在努力获得预期的输出 我试图将列表列表放入单个列表中 但尝试使用 flatten 和append 2 不起作用 我已经尝试了几个小时 并且一直在兜圈子 有人可以告诉我我做错了什
  • 禁用 html5 视频自动播放

    如何禁用 html5 视频自动播放 我尝试过的
  • dropzone.js ...重新排队拒绝的文件...尝试将 github 答案实现到我的脚本中

    提交表单时 如果任何表单字段 例如标题 中存在错误 则用户必须重新上传文件 我正在尝试将此代码实现到我的脚本中来解决此问题 但它不起作用 https github com enyo dropzone issues 717 Dropzone
  • 倒计时器

    尝试在 Microsoft Visual Studio 上用 C 做一个倒计时器 最小值 10 秒 最大值 2 小时 计时器用完时需要显示 我该如何实现这个 谢谢 Use System Threading Timer http msdn m
  • R 无法识别命令行选项。 (警告:未知选项“-d”)

    我正在尝试使用 gdb 以与视频中指定的方式相同的方式调试 R 包中的编译代码 https vimeo com 11937905 https vimeo com 11937905 and 编写 R 扩展 https cran r proje