我有一个函数调用,有时会产生段错误。现在我通过将它放在一个单独的Python文件中并在我的主脚本中执行Popen('python snippet.py')
来隔离此代码。在Unix系统上有更优雅的方法吗?
更新7/24
我发现以下是方便的
if not os.fork():
# do stuff that could segfault here
这样做的好处是不必将所有初始化代码放在单独的文件中。显然,Python 2.6中还有multiprocessing
模块支持进程间通信
答案 0 :(得分:-1)
为什么不找到并修复它?
strace python yourapp.py yourargs and options >trace.out 2>&1
然后,在segfaults尝试tail -50 trace.out
之后,您将看到它如何导致段错误。通常,它是一个乱码指针,指向不属于进程的内存地址。如果您使用类似ctypes之类的东西来访问共享库,那么Python错误很可能会产生这样的指针错误。
我