python分段错误(核心转储)

时间:2013-08-23 05:29:44

标签: python c

我的python版本是 python-2.7.3 。我的程序运行 3小时来执行同样的事情。但是,我收到错误“分段错误(核心转储)”。我查看了dmesg日志,得到了

[466109.911462] python[8090]: segfault at 9c859249 ip 00000000004c79b8 sp 00007f3c8affa810 error 4 in python2.7[400000+21f000]
[479310.742822] python[8127]: segfault at 7fadbbfffff8 ip 00007fadd233a9a3 sp 00007fadae7f9da8 error 4 in libc-2.15.so[7fadd21f8000+1b5000]

问题:如何调试错误?

1 个答案:

答案 0 :(得分:0)

使用objdump -d反汇编二进制文件,搜索位置00000000004c79b800007fadd233a9a3可以给你一些想法,或者不是。

因此在我的电脑上,例如

objdump -d /lib/x86_64-linux-gnu/libc-2.17.so|less

libc-2.17的起始地址是7fadd21f8000,所以我认为你必须从指针值中减去它

>>> hex(0x00007fadd233a9a3-0x7fadd21f8000)
'0x1429a3'

这就是你在libc中寻找的东西(我认为),

对于python,不需要调整,因为可执行文件将链接到其首选地址。