有没有办法在RCPP程序无法正常工作时阻止RGui崩溃?
Is there a way to stop RGui from crashing when an RCPP program fails to work correctly?
我正在使用 Rcpp 使用 RGui(版本 3.4.1(作为用户界面运行C++代码。很多时候,我对C++代码进行更改,这些代码可以正确编译,但是当我在RGui中运行相关程序时会导致错误(例如,在数组末尾之外进行搜索(,从而导致RGui崩溃。这很糟糕,因为我必须重新打开 RGui,重新打开我的 R 脚本(有时丢失未保存的更改(,再次设置工作目录等,然后才能重新编译C++代码并以查找问题或测试修正的方式运行程序。有时它会立即再次崩溃,因为我没有修复或绕过问题。
有没有办法改变 Rcpp 的运行方式,以便 RGui 在这种情况下返回错误消息而不是崩溃?
簡單地說:
- 它拼写为Rcpp.大写R,小写cpp。
- 是的,没有错误:)
- 一般来说,2.是唯一可行的答案。 如果需要托管语言,请使用 R。
- 如果代码导致环境关闭,请在环境外部进行测试。认真地。 例如,这就是为什么我(共同(编写了很少的内容并在命令行上测试"原始代码":它只能关闭命令行应用程序。
- 我们确实在例如 RcppArmadillo 中有一个功能来测试"越界"矢量访问:使用会发出警告
x.at(i,j)
。请参阅 http://arma.sourceforge.net/docs.html#element_access
除了更仔细的编程和执行前保存之外,我实际上不知道有什么方法可以防止这种情况。但是这样做了几次后,我发现了一种方法来恢复未保存的更改(至少在窗口中(。
当您看到告诉您重新启动 R 的弹出窗口时,您不会这样做。您打开任务管理器并右键单击该过程并选择"创建转储文件"。在资源管理器中找到此文件并使用一些文本编辑器打开它。
它们非常大,充满了各种各样的东西,但是如果你使用find函数来搜索一些你知道在你的脚本中的字符串,那么你可以找到所有未保存的工作。然后,您可以将其复制并粘贴到另一个文件中进行保存。
如果您使用 R-studio 而不是 R-GUI,它通常会更好地照顾您未保存的工作。
相关文章:
- QSqlquery prepare()和bindvalue()不工作
- 导入库可以跨dll版本工作吗
- 以螺旋方式打印矩阵的程序.(工作不好)
- 对象指针在c++中是如何工作的
- 为什么在Windows上的VS 2019和Clang 9中"size_t"在没有标题的情况下工作
- VSOMEIP-2个设备之间的通信(TCP/UDP)不工作
- 为字符串中每 N 个字符插入空格的函数没有按照我认为的方式工作?
- C++为线程工作动态地分割例程
- 为什么我的 std::ref 无法按预期工作?
- 布尔比较运算符是如何在C++中工作的
- SampleConsensusPrerejective(ext.RANSAC)是如何真正工作的
- 不确定要在我的main中放入什么才能使我的代码正常工作
- 为什么std::condition_variable notify_all的工作速度比notify_one快(对于随机请
- <<操作员在下面的行中工作
- 有人能解释一下为什么下界是这样工作的吗C++的
- ExtractIconEx:可以工作,但偶尔会崩溃
- C++中的memset函数工作不正常
- 当我在第一个循环中使用"auto"时,它工作正常,但是使用"int"它会给出错误,为什么?
- 链表c++插入,所有情况都已检查,但没有任何工作
- 有没有办法在RCPP程序无法正常工作时阻止RGui崩溃?