2013-10-01 79 views
1

我剛剛從Ubuntu 12.04更新到13.04,並且我遇到了一些遷移過的工作代碼的問題。谷歌搜索並沒有透露任何明顯與外觀有關的東西,除了一些模糊的R引用,儘管我的項目確實使用了R,我不希望它在遷移中出現。我從來沒有在第三方代碼中處理過調試seg故障。我應該如何繼續?Django South Seg Fault

(project)[email protected]:~/Projects/project/project$ python project/manage.py migrate 
Error: 'rho' must be an environment not NULL: detected in C-level eval 
Segmentation fault (core dumped) 

編輯:它看起來像rpy2的問題,發現使用ltrace從下面的答案。仍然想知道如何遷移。編輯2:我的R版本已經更新,超出了Rpy2喜歡的版本。恢復固定的東西。這是怎麼產生的./manage.py migrate對我來說是神祕的。

回答

2

我會從strace開始,因爲它已經安裝在很多系統上。這可能使您能夠根據系統調用縮小當前正在執行的模塊的範圍。例如

$ strace -o ~/tmp/strace.log -f python project/manage.py migrate 

或者,安裝ltrace並查看調用順序。

$ sudo apt-get install ltrace 
$ ltrace python project/manage.py migrate 

如果做不到這一點,因爲核心已經被拋棄,你可以用GDB的核心,看看究竟問題出在哪裏發生

$ gdb core 

使用命令,如bt顯示堆棧跟蹤。爲了使這更容易,您可能需要查找具有可用調試符號的可執行文件/庫。

+0

太棒了!不知道這是否會解決問題,但學會了新的東西來幫助更好地調試。謝謝 !! – karthikr