Python/Chrome/Java 的分段错误(linux mint)
Posted
技术标签:
【中文标题】Python/Chrome/Java 的分段错误(linux mint)【英文标题】:Segmentation fault with Python/Chrome/Java (linux mint) 【发布时间】:2014-07-25 10:07:36 【问题描述】:当我在命令行中运行python
(不带任何参数)时,会发生分段错误。
错误是:
$ python
[1] 11094 segmentation fault python2.7
还有 linux 内核陷阱:
$ dmesg
traps: python2[10923] general protection ip:4db605 sp:7fffe4b29e70 error:0 in python2.7[400000+2ba000
$gdb python
Program received signal SIGSEGV, Segmentation fault.
0x00000000004db605 in PyDict_SetItemString ()
(gdb) backtrace
#0 0x00000000004db605 in PyDict_SetItemString ()
#1 0x000000000044719b in _PyExc_Init ()
#2 0x000000000046928e in Py_InitializeEx ()
#3 0x0000000000469db3 in Py_Main ()
#4 0x00007ffff7816de5 in __libc_start_main () from /lib/x86_64-linux-gnu/libc.so.6
#5 0x00000000005735fe in _start ()
objdump -d /usr/bin/python2.7 | less
的选定部分
4db5f7: 0f 84 a6 02 00 00 je 4db8a3 <PyDict_SetItemString+0x323>
4db5fd: 4d 8b 48 08 mov 0x8(%r8),%r9
4db601: 41 83 00 01 addl $0x1,(%r8)
4db605: 4d 8b 11 mov (%r9),%r10
4db608: 4d 89 cc mov %r9,%r12
4db60b: 4d 85 d2 test %r10,%r10
4db60e: 4d 89 50 08 mov %r10,0x8(%r8)
我的机器规格是:
Linux Mint 16(64 位) 内存:8GB(6GB 是免费的) 我在 SSD (64 GB) 昨晚上安装了 Mint,1TB HDD CPU:酷睿 I5 4670k Linux 内核:Linux mint 3.11.0-12-generic #19-Ubuntu SMP Wed Oct 9 16:20:46 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux我尝试在我的机器上安装新的 kubuntu 14.04(作为另一种解决方案,将发行版升级到 mint 17),但不幸的是发行版崩溃了。
有人可以说,为什么会发生错误?我该如何解决?
我想知道是否有人帮助我解决问题。 (我知道什么是 segsegv,但我不知道 知道为什么在全新安装 linux 时会出现此错误)
Google-Chrome、Java 等程序也存在同样的问题。
谢谢
【问题讨论】:
很容易成为我见过的信息量最大的非编程 Python 问题 C/c++ 语言标签无法承受(它们不真正适用)支持你抓取公牛的角。我也对源代码和解决方案感兴趣(没有特别的原因)。 有趣。当您运行脚本而不是外壳时,它是否仍然存在段错误? iPython 有段错误吗?您是否使用任何特殊标志构建了可执行文件?假设你做了一些 C 编程——你的系统上是否有任何会与malloc
混淆的东西——例如替代实施?我至少在 Ubuntu 上知道操作系统使用了 python——你有随机可执行文件段错误的问题,或者 Mint 的频繁错误消息吗? “示例问题”是什么意思?
@PatrickCollins 当我发送这篇文章时,我的浏览器(Google-Chrome)崩溃了 8 次,并显示相同的陷阱消息。当我尝试保存 android 的虚拟设备时,segsegv 也在上升。我尝试安装 ipython 但安装停止,因为 pycompile 崩溃了。每次都会出现这个问题。
@Ocean 你能apt-get install python3
看看是否有效吗?除非您做了一些奇怪的事情,否则听起来这可能是一个 Python 错误——您可能需要提交错误报告。
@PatrickCollins Python3 安装好了,但是没有问题。我使用Mercurial-HG作为我的版本控制,hg基于python2.7。
【参考方案1】:
这不是解释为什么你的 python 当前崩溃——除非你的系统上有一些你没有提到的奇怪配置,它似乎是一个 python 错误——但这里有一个可能的修复:
我只能猜测在您安装 python 时某些内容已损坏。一个理想的解决方案是卸载并重新安装,但这很痛苦,因为有大量系统关键程序将 python 作为依赖项。因此,您可以关注the instructions here 找到您删除的所有内容并重新安装。这是我的建议:
sudo apt-get purge python2.7
您将获得一长串要删除的软件包,这没关系。让他们被删除。
sudo apt-get install python2.7
重新安装python。现在,重新安装旧的已删除软件包:
grep Remove /var/log/apt/history.log | tail -n1 | cut -d: -f2- | sed "s/(.*)//g" | sed "s/:your_processor//g"
这是您最近删除的软件包的列表,您现在可以将其提供给apt-get
以重新安装。 :your_processor
是 apt 列出的架构,对我来说是 :amd64
。
请注意,这是一个相当危险的操作。
另外,看到您的评论 - 您的 RAM 似乎有问题。这是一个硬件问题。重新安装可能会解决它,但问题会再次出现 - 更换有问题的棒。如果这是一台新机器,它可能会在您的保修范围内。假设您自己制造机器,还要检查插槽中是否有灰尘等。 Here's a Super User post that explains why a memtest failure is a big deal.
【讨论】:
我尝试了您的指示,但由于 dpkg 返回错误,删除已停止。我试图通过 GRUB_BADRAM="0xc0f00000,0xfff00000" 选项跳过坏 ram,但它不起作用。 @Ocean 你有硬件问题——你需要更换有问题的内存条,没有其他解决方案。 (另外——欢迎来到 SO!您的问题写得很好,并且付出了巨大的努力。请务必投票并接受您认为有帮助的答案。)以上是关于Python/Chrome/Java 的分段错误(linux mint)的主要内容,如果未能解决你的问题,请参考以下文章