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)的主要内容,如果未能解决你的问题,请参考以下文章

打印分段错误原因[重复]

如何调试 Python 分段错误?

分段控制错误选择索引

什么是分段错误?

识别导致分段错误(核心转储)的错误

总线错误与分段错误