我在redhat linux发行版上运行R via Rpy。我会定期遇到此错误消息:
*** caught segfault ***
address (nil), cause 'unknown'
整个程序就在那里死了。它通常发生在我运行大量回归r.lm()
时。但是,通过简单地再次运行相同的代码,问题可能会或可能不会消失(因此并不总是可再现)。有谁知道可能导致这种情况的原因,和/或我如何防止它发生?
答案 0 :(得分:2)
有几种可能性。
问题在于R代码。要对此进行测试,请在R中运行代码,看看是否可以复制该问题。
问题在于Rpy。在调试器中运行程序,看看你究竟从Python传递到R,从R传递到Python。猜测,你有某种变量不匹配只会在某些情况下发生。
问题在于环境。是否需要加载一些其他软件才能运行程序?一旦再次运行它会失败吗? (也许你没有关闭文件的连接?)它是在其他人的机器上还是在你的机器上失败了?
问题在于数据。你随机产生什么吗?这可以解释问题的间歇性。
如果您仍然卡住,请阅读一些tips on debugging。