当前位置: 首页 > 面试题库 >

分段错误:在OS X中为11

麹高远
2023-03-14
问题内容

我在OSX 10.9上的Python
3.3.2中遇到问题,如果我在终端窗口中打开Python,则无论输入的是两个命令是什么,它都会在我输入的第二行之后退出并显示“错误:11”。例如,如果我输入:

>>> for x in range(1000): print(x)

效果很好,但是如果我输入:

>>> for x in range(1000):
...     print(x)

然后在第二行按Enter键时出现错误。我也可以运行多于2行的脚本,而不会出现任何问题。

我今天下午更新到OSX 10.9,所以我怀疑可能是这样。

但是,我最近才安装了IPython(以及其他几个软件包),并且过去几天一直在使用它,所以可能是我最近安装的其他东西。我在运行configure.py的地方安装PyQt的尝试失败了两次,但随后“
make”命令失败了,我对此也感到怀疑。

我尝试重新安装Python,但无法解决问题。IPython和IDLE都可以正常工作。我只是担心潜在的问题。


问题答案:

这是python中的readline兼容性中的错误,与OSX10.9中引入的更改有关。这个周末,发布了修复此错误的Python2.7.6和Python3.3.3候选发布版本。下载链接如下。

http://python.org/download/releases/2.7.6/

http://python.org/download/releases/3.3.3/

这是问题,引用Ned Deily的话,写在python-
dev电子邮件列表中

苹果在周二发布了OS X
10.9(又名Mavericks)。人们对此已经产生了浓厚的兴趣,部分原因是Apple免费提供了该功能,并使拥有10.8、10.7和(大多数)10.6系统的用户可以轻松地直接升级到10.9。不幸的是,我们在OS
X 10.9上的当前维护版本(3.3.2和2.7.5)存在一些问题,需要尽快发布新的维护版本。

一个关键点在于,它会导致解释器在以交互方式运行时崩溃(http://bugs.python.org/issue18458)。该问题是由于libedit的readline兼容性层中长期存在的兼容性问题所致,上游终于解决了该问题,而Apple现在已在10.9中发布了该问题。由于python.org安装程序动态链接到libedit,因此,当用户以交互方式键入第二个命令时,readline.c中针对历史索引中原始设计缺陷的原始变通方法现在会导致在10.9上出现段错误。不好。Ronald设计了一个修补程序,该修补程序允许readline.so在运行时检测和使用任一版本的libedit,以便我们继续在多个OS
X发行版之间具有二进制兼容性。该修补程序已在3.4.0
Alpha中发布,并反向移植到3.3和2.7分支中,等待在那里发布。仅在最近的12小时内,用户报告了至少四份该问题的副本。我已经更新了原始问题,以明确提及10.9,现在它不再属于NDA,并且为没有经验的用户提供一个可下载的脚本,以通过“删除”
readline.so解决此问题。据推测,随着消息传开,将会出现较少的重复问题,但影响仍然存在。



 类似资料:
  • 我在实现合并排序时遇到了分段错误。我已经检查了数组是否超出边界。我想得到一些帮助,找出我哪里出了问题。我尝试过小数组的输入,例如大小为10的数组,我将temp的大小作为静态值( 更新:我只需要改变mid=(低高)/2。

  • 我有.jar文件,该文件在运行时读取一个我使用 GCC 编译器在 OSX 中编译的 .dylib 库。 应用程序在OSX 10.6.8上运行没有任何问题。 Java版本: java版本“1 . 6 . 0 _ 33”Java(TM)SE运行时环境(内部版本1 . 6 . 0 _ 33-b10-424-10m 3720)Java HotSpot(TM)64位服务器虚拟机(内部版本20.8-b01-4

  • 我正在尝试运行下面的程序,在该程序中,我使用一个名为Reserve的函数动态地为变量分配内存。当我运行应用程序时,由于在一个单独的函数中为一个空指针分配内存,我会得到分段错误,但是如果我想在主函数中分配内存,我不会得到这个错误。那我做错了什么? 代码如下:

  • 问题内容: 我正在从python开发C扩展,并且获得了一些段错误(在开发过程中不可避免…)。 我正在寻找一种显示段错误发生在哪一行代码的方法(一个想法就像跟踪每一行代码),我该怎么做? 问题答案: 这是一种输出代码运行的Python每行的文件名和行号的方法: 输出: (当然,您可能希望将跟踪输出写入文件。)

  • 问题内容: 我试图运行此shellcode,但它使我抛出:“ Segmentation fault”错误shellcode如下: shellcode.asm: 我将其编译为:’nasm -f elf shellcode.asm’并将其链接为:’ld -m elf_i386 -s -o shellcode shellcode.o 我认为错误是当我使用mov [ebx + x],al / eax /

  • 问题 解释器因为某个分段错误、总线错误、访问越界或其他致命错误而突然间奔溃。 你想获得Python堆栈信息,从而找出在发生错误的时候你的程序运行点。 解决方案 faulthandler 模块能被用来帮你解决这个问题。 在你的程序中引入下列代码: import faulthandler faulthandler.enable() 另外还可以像下面这样使用 -Xfaulthandler 来运行Pyth