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

0 c++ r rcpp

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

是否有某种方法可以更改 Rcpp 的运行方式,以便 RGui 返回错误消息而不是在此类情况下崩溃?

Dir*_*tel 5

简要地:

  1. 拼写为 Rcpp。大写 R,小写 cpp。
  2. 是的,没有错误:)
  3. 一般来说,2. 是唯一可行的答案。如果您需要托管语言,请使用 R。
  4. 如果代码导致您的环境崩溃,请在环境之外进行测试。严重地。这就是为什么我(共同)编写了更少的内容并在命令行上测试“原始代码”:它只能关闭命令行应用程序。
  5. 我们确实有一个功能,例如 RcppArmadillo 来测试“越界”矢量访问:使用x.at(i,j)它会发出警告。请参阅http://arma.sourceforge.net/docs.html#element_access

  • 我想说,从长远来看,你最好不要将自己束缚在任何一种 IDE 上。这里你想要的是_traceback_,因此使用“-g”进行编译并启动“R -d gdb”,看看是否可以从崩溃中获取有用的信息。 (2认同)