我使用Rcpp来运行C++代码,并使用RGui (版本3.4.1)作为用户界面。当我在RGui中运行相关程序时,我经常对C++代码进行更改,这些代码可以正确编译,但会导致错误(例如,搜索超出数组的结尾),从而导致RGui崩溃。这很糟糕,因为我必须重新打开RGui,重新打开我的R脚本(有时会丢失未保存的更改),重新设置工作目录,等等,然后才能重新编译C++代码,并以这种方式运行程序来查找问题或测试修改。有时它会立即再次崩溃,因为我没有修复或绕过这个问题。
有没有办法改变Rcpp的运行方式,使RGui在这种情况下返回错误消息而不是崩溃?
发布于 2018-09-21 20:12:48
简要地说:
x.at(i,j),它将发出警告。请参阅http://arma.sourceforge.net/docs.html#element_access发布于 2018-09-21 20:19:09
除了更仔细的编程和在执行前保存之外,我实际上不知道有什么方法可以防止这种情况发生。但在做了几次之后,我发现了一种方法,可以恢复未保存的更改(至少在windows中是这样)。
当弹出窗口告诉您要重新启动R时,您并没有这样做。你打开任务管理器,右击进程并选择‘创建转储文件’。在资源管理器中找到此文件,并使用某个文本编辑器打开它。
它们非常大,并且充满了各种各样的东西,但是如果你使用find函数来搜索一些你知道在你的脚本中的字符串,那么你可以找到所有未保存的工作。然后,您可以将其复制并粘贴到另一个文件中进行保存。
如果您使用R-studio而不是R-GUI,它通常会更好地处理您未保存的工作。
https://stackoverflow.com/questions/52443432
复制相似问题