Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python分段错误(内核转储)_Python_C - Fatal编程技术网

python分段错误(内核转储)

python分段错误(内核转储),python,c,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]: segfaul

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

问题:如何调试错误?

使用
objdump-d
反汇编二进制文件,并搜索位置
0000000000 4C79B8
00007fadd233a9a3
可能会给您一些想法,也可能不会

例如,在我的电脑上

objdump -d /lib/x86_64-linux-gnu/libc-2.17.so|less
libc-2.17的起始地址是
7fadd21f8000
,因此我认为您必须从指针值中减去它

>>> hex(0x00007fadd233a9a3-0x7fadd21f8000)
'0x1429a3'
所以这就是你在libc中所寻找的(我认为)


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

您就得到了这些吗?如果你能发布你的程序代码-可能会有帮助。对不起,我不能发布代码,因为它有点长。我想得到的是调试方法使用
nm
列出
python2.7
libc-2.15的符号。因此
-尝试找到指令指针
0000000000 4C79B8
00007fadd233a9a3
指向的符号(这些地址的单位可能略小于nm。除此之外,很难知道。啊,但无法从libc-2.17中获取符号。因此……如果您运气好,并且调试符号正确无误,那么有时这就是您可以获得的所有信息,并且必须根据这些信息进行调试。