apache2 seg fault:找不到原因

时间:2012-03-18 09:01:28

标签: apache2 gdb segmentation-fault

我一直在ubuntu 10.04上获取这些日志条目:

# vim /var/log/apache2/error.log

[Sun Mar 18 08:58:01 2012] [notice] child pid 4300 exit signal Segmentation fault (11)
[Sun Mar 18 08:58:02 2012] [notice] child pid 4302 exit signal Segmentation fault (11)
[Sun Mar 18 08:58:03 2012] [notice] child pid 4303 exit signal Segmentation fault (11)
[Sun Mar 18 08:58:03 2012] [notice] child pid 4304 exit signal Segmentation fault (11)
[Sun Mar 18 08:58:04 2012] [notice] child pid 4305 exit signal Segmentation fault (11)
[Sun Mar 18 08:58:04 2012] [notice] child pid 4306 exit signal Segmentation fault (11)
[Sun Mar 18 08:58:04 2012] [notice] child pid 4307 exit signal Segmentation fault (11)
[Sun Mar 18 08:58:04 2012] [notice] child pid 4308 exit signal Segmentation fault (11)

我在我的httpd.conf中添加了coredump:

CoreDumpDirectory /tmp/apache2-gdb-dump

创建,chmod 777和chown www-data:www-data tmp/apache2-dgb-dump,set

# ulimit -c unlimited

并重新启动apache。 Coredump已创建,我试图分析它,但它没有告诉我任何事情......:

# gdb /etc/init.d/apache2 core
GNU gdb (GDB) 7.1-ubuntu
Copyright (C) 2010 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
"/etc/init.d/apache2": not in executable format: File format not recognized
[New Thread 7968]
Core was generated by `/usr/sbin/apache2 -k start'.
Program terminated with signal 11, Segmentation fault.
#0  0x00007f78121f36ad in ?? ()
(gdb) where
#0  0x00007f78121f36ad in ?? ()
#1  0x00007f7800000002 in ?? ()
#2  0x00007f78044af088 in ?? ()
#3  0x00007f7815e86080 in ?? ()
#4  0x00007f7816e5b5e8 in ?? ()
#5  0x00007f7816ed2a10 in ?? ()
#6  0x00007f7815e86080 in ?? ()
#7  0x00007f7815e86080 in ?? ()
#8  0x00007f78129058c0 in ?? ()
#9  0x00007f7816ed2a10 in ?? ()
#10 0x00007f781223614c in ?? ()
#11 0x00007f7815e86080 in ?? ()
#12 0x00007f7812235ee0 in ?? ()
#13 0x0000000000000006 in ?? ()
#14 0x00007f7816a251d0 in ?? ()
#15 0x00007f7816d38a40 in ?? ()
#16 0x01007fff69cdd3c0 in ?? ()
#17 0x00007fff69cdd3c0 in ?? ()
#18 0x00007f78129058c0 in ?? ()
#19 0x00007fff69cdd3c0 in ?? ()
#20 0x0000000000000001 in ?? ()
#21 0x0000000000000000 in ?? ()

我该怎么做才能找出问题所在?

1 个答案:

答案 0 :(得分:2)

您正在以错误的方式调用gdb。根据gdb输出,核心转储由/usr/sbin/apache2生成。您应该像这样运行gdb:gdb /usr/sbin/apache2 core/etc/init.d/apache2很可能是一些调用/usr/sbin/apache2的脚本。请参阅gdb输出:

"/etc/init.d/apache2": not in executable format: File format not recognized
[New Thread 7968]
Core was generated by `/usr/sbin/apache2 -k start'.
Program terminated with signal 11, Segmentation fault.