我正在尝试解决分段错误.此消息显示在我的apache-error.log中:
[注意]儿童pid 3979退出信号分段故障(11)
我试过禁用一些apache和php模块,但我仍然得到同样的错误.
我也试过把它放在apache2.conf中:
CoreDumpDirectory/tmp/apache2-gdb-dump
然后chmod 777,chown www-data ...这样服务器就可以写了.
我看不到核心转储文件给我一个关于错误的提示.
有没有人知道为什么CoreDumpDirectory不能在Ubuntu上工作?
答案:$ ulimit -a核心文件大小
(块,-c)无限数据seg大小
(kbytes,-d)无限制调度优先级(-e)0文件大小(块,-f)无限制挂起信号(-i)15863 max锁定内存
(kbytes,-l)32最大内存大小
(kbytes,-m)无限制打开文件
(-n)1024管道大小(512字节,-p)8 POSIX消息队列
(字节,-q)819200实时优先级(-r)0堆栈大小
(kbytes,-s)8192 cpu time
(seconds,-t)无限制最大用户进程(-u)15863虚拟内存(kbytes,-v)无限制文件锁
(-x)无限制
aro*_*rod 11
我终于能够在Ubuntu中看到Apache的核心转储:
/etc/default/apport编辑apache2.conf:
CoreDumpDirectory /tmp/apache2-gdb-dump
Run Code Online (Sandbox Code Playgroud)确保Apache可以写入:
# chmod 777 /tmp/apache2-gdb-dump
Run Code Online (Sandbox Code Playgroud)删除核心转储大小限制:
# ulimit -c unlimited
Run Code Online (Sandbox Code Playgroud)(可选)更改核心转储的名称模式:
# echo 'coredump-%e.%p' > /proc/sys/kernel/core_pattern
Run Code Online (Sandbox Code Playgroud)分析转储使用情况gdb:
$ gdb apache2 /tmp/apache2-gdb-dump/coredump-x.x
Run Code Online (Sandbox Code Playgroud)
要在gdb中查看stacktrace详细信息:
gdb> where
Run Code Online (Sandbox Code Playgroud)
我这样做了,我获得了核心转储.然而,通过查看coredump我的问题并没有解决; 这显然是我的PHP脚本中的一个问题.
更多信息:http: //matrafox.info/apache-child-pid-exit-signal-segmentation-fault.html
| 归档时间: |
|
| 查看次数: |
14202 次 |
| 最近记录: |