Attach gdb to one of the httpd child processes and reload or continue working and wait for a crash and then look at the backtrace. Do something like this:
Now attach gdb to one of the child processes, in this case PID 690 (columns are UID, PID, PPID, ...)
$ sudo gdb
(gdb) attach 690
Attaching to process 690.
Reading symbols for shared libraries . done
Reading symbols for shared libraries ....................... done
0x9568ce29 in accept$NOCANCEL$UNIX2003 ()
(gdb) c
Continuing.
Wait for crash... then:
(gdb) backtrace
Or
(gdb) backtrace full
Should give you some clue what's going on. If you file a bug report you should include the backtrace.
If the crash is hard to reproduce it may be a good idea to configure Apache to only use one child processes for handling requests. The config is something like this:
A segementation fault is an internal error in php (or, less likely, apache). Oftentimes, the segmentation fault is caused by one of the newer and lesser-tested php modules such as imagemagick or subversion.
Try disabling all non-essential modules (in php.ini), and then re-enabling them one-by-one until the error occurs. You may also want to update php and apache.
发布评论
评论(3)
将 gdb 连接到 httpd 子进程之一并重新加载或继续工作并等待崩溃,然后查看回溯。做这样的事情:
...
现在将 gdb 附加到一个子进程,在本例中 PID 690(列是 UID、PID、PPID,...)
等待崩溃...然后:
或者
应该给你一些线索这是怎么回事。如果您提交错误报告,您应该包含回溯。
如果崩溃很难重现,那么将 Apache 配置为仅使用一个子进程来处理请求可能是一个好主意。配置是这样的:
Attach gdb to one of the httpd child processes and reload or continue working and wait for a crash and then look at the backtrace. Do something like this:
...
Now attach gdb to one of the child processes, in this case PID 690 (columns are UID, PID, PPID, ...)
Wait for crash... then:
Or
Should give you some clue what's going on. If you file a bug report you should include the backtrace.
If the crash is hard to reproduce it may be a good idea to configure Apache to only use one child processes for handling requests. The config is something like this:
分段错误是 php(或者不太可能是 apache)中的内部错误。通常,分段错误是由较新且测试较少的 php 模块之一引起的,例如 imagemagick 或 subversion。
尝试禁用所有非必需模块(在
php.ini
中),然后一一重新启用它们,直到出现错误。您可能还想更新 php 和 apache。如果这没有帮助,您应该报告 php 错误。
A segementation fault is an internal error in php (or, less likely, apache). Oftentimes, the segmentation fault is caused by one of the newer and lesser-tested php modules such as imagemagick or subversion.
Try disabling all non-essential modules (in
php.ini
), and then re-enabling them one-by-one until the error occurs. You may also want to update php and apache.If that doesn't help, you should report a php bug.
您是否尝试过在 php.ini 中增加 output_buffering ?
“zend_mm_heap 损坏”是什么意思?
Have you tried to increase output_buffering in your php.ini?
What does "zend_mm_heap corrupted" mean?