我的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]
问题:如何调试错误?
答案 0 :(得分:0)
使用objdump -d
反汇编二进制文件,搜索位置00000000004c79b8
和00007fadd233a9a3
可以给你一些想法,或者不是。
因此在我的电脑上,例如
objdump -d /lib/x86_64-linux-gnu/libc-2.17.so|less
libc-2.17的起始地址是7fadd21f8000
,所以我认为你必须从指针值中减去它
>>> hex(0x00007fadd233a9a3-0x7fadd21f8000)
'0x1429a3'
这就是你在libc中寻找的东西(我认为),
对于python,不需要调整,因为可执行文件将链接到其首选地址。