-1

我的 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]

问题:如何调试错误?

4

1 回答 1

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,不需要调整,因为可执行文件将链接到它的首选地址。

于 2013-08-23T05:46:04.640 回答