使用Python / Chrome / Java进行分段错误(linux mint)

时间:2014-06-04 16:31:54

标签: python linux crash segmentation-fault linuxmint

当我在命令行中运行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位)
  • Ram:8GB(6 GB免费)
  • 我在SSD上安装了Mint(64 GB) 昨晚 ,1TB HDD
  • CPU:Core I5 4670k
  • Linux内核:Linux薄荷3.11.0-12-通用#19-Ubuntu SMP星期三10月9日16:20:46 UTC 2013 x86_64 x86_64 x86_64 GNU / Linux

我试图在我的机器上安装新的kubuntu 14.04(作为另一种解决方案,将分发升级到薄荷17)但不幸的是,分发已经崩溃。

有人可以说,为什么会发生错误?我该如何解决?

我想知道是否有人帮我解决问题。 (我知道什么是segsegv,但我不知道 知道为什么在全新安装linux时会出现这个错误)

Google-Chrome,Java和其他程序存在同样的问题。

由于

1 个答案:

答案 0 :(得分:1)

这不是为什么你的python当前崩溃的解释 - 除非你的系统上有一些你没有提到过的奇怪配置,它似乎是一个python bug - 但这里有一个可能的修复:< / p>

我只能猜到安装python时出现了问题。一个理想的解决方案是卸载并重新安装,但这很痛苦,因为有大量系统关键程序将python作为依赖项。因此,您可以按the instructions here查找删除的所有内容并重新安装。这是我的建议:

  1. sudo apt-get purge python2.7

    您将获得一长串要删除的软件包,这没关系。让他们删除。

  2. sudo apt-get install python2.7

    重新安装python。现在,重新安装旧的已删除软件包:

  3. 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

  4. 请注意这是一个相当危险的操作。

    另外,看到你的评论 - 看来你的内存不好。这是一个硬件问题。重新安装可能会解决它,但问题将重新出现 - 更换违规的棒。如果这是一台新机器,它可能会由您的保修承保。假设您自己制造机器,还要检查插槽中是否有灰尘等。 Here's a Super User post that explains why a memtest failure is a big deal