2010-03-18 83 views
1

我在redhat linux發行版上通過Rpy運行R。定期我會遇到這個錯誤信息:在Linux上通過Rpy運行時發生R段錯誤

*** caught segfault *** 
address (nil), cause 'unknown' 

而整個程序就在那裏死去。它通常發生在我運行大量回歸r.lm()時。但通過再次運行相同的代碼,問題可能會或可能不會消失(所以不總是可重現的)。有誰知道什麼可能導致這種情況,和/或我怎麼能阻止它發生?

+1

魔法花費額外。關心可能*顯示*什麼*導致*段錯誤,並使其*可複製*? – 2010-03-18 20:16:09

+0

另一件事將是,但在R周圍的外部循環,看看是否該段錯誤。 – 2010-03-18 20:22:16

回答

2

有幾種可能性。

  1. 問題出在R代碼上。爲了測試這個,運行R中的代碼,看看你是否可以複製這個問題。

  2. 問題出在Rpy上。在調試器中運行程序,看看你從Python傳遞到R以及從R傳遞到Python。猜測,你有某種只在某些條件下才會出現的變量不匹配。

  3. 問題在於環境。是否需要加載一些其他軟件才能運行程序?當它再次運行時,一旦失敗,它會起作用嗎? (也許你沒有關閉與文件的連接?)它在別人的機器上還是在你的機器上失敗?

  4. 問題出在數據上。你是否隨機生成任何東西?這將解釋問題的間歇性。

如果您仍然卡住,請閱讀tips on debugging

相關問題