首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当RCPP程序不能正常工作时,有没有办法阻止RGui崩溃?

当RCPP程序不能正常工作时,有没有办法阻止RGui崩溃?
EN

Stack Overflow用户
提问于 2018-09-21 20:06:30
回答 2查看 193关注 0票数 0

我使用Rcpp来运行C++代码,并使用RGui (版本3.4.1)作为用户界面。当我在RGui中运行相关程序时,我经常对C++代码进行更改,这些代码可以正确编译,但会导致错误(例如,搜索超出数组的结尾),从而导致RGui崩溃。这很糟糕,因为我必须重新打开RGui,重新打开我的R脚本(有时会丢失未保存的更改),重新设置工作目录,等等,然后才能重新编译C++代码,并以这种方式运行程序来查找问题或测试修改。有时它会立即再次崩溃,因为我没有修复或绕过这个问题。

有没有办法改变Rcpp的运行方式,使RGui在这种情况下返回错误消息而不是崩溃?

EN

回答 2

Stack Overflow用户

发布于 2018-09-21 20:12:48

简要地说:

  1. 它的拼写是Rcpp。大写R,小写cpp。
  2. 是的,没有bug :)
  3. 一般来说,2.是唯一可行的答案。如果您需要托管语言,请使用R.
  4. 如果代码会影响您的环境,请在该环境之外进行测试。我是认真的。这就是为什么我(共同)编写littler并在命令行上测试“原始代码”的原因:它只能关闭命令行应用程序。
  5. 我们在例如RcppArmadillo中确实有一个功能来测试“越界”向量访问:使用x.at(i,j),它将发出警告。请参阅http://arma.sourceforge.net/docs.html#element_access
票数 4
EN

Stack Overflow用户

发布于 2018-09-21 20:19:09

除了更仔细的编程和在执行前保存之外,我实际上不知道有什么方法可以防止这种情况发生。但在做了几次之后,我发现了一种方法,可以恢复未保存的更改(至少在windows中是这样)。

当弹出窗口告诉您要重新启动R时,您并没有这样做。你打开任务管理器,右击进程并选择‘创建转储文件’。在资源管理器中找到此文件,并使用某个文本编辑器打开它。

它们非常大,并且充满了各种各样的东西,但是如果你使用find函数来搜索一些你知道在你的脚本中的字符串,那么你可以找到所有未保存的工作。然后,您可以将其复制并粘贴到另一个文件中进行保存。

如果您使用R-studio而不是R-GUI,它通常会更好地处理您未保存的工作。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52443432

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档