2013-10-01 77 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