我正在使用Apache/PHP/MySQL堆栈.
使用CakePHP作为框架.

我时不时会收到一张空白的白纸.我无法通过Cake调试它,所以我偷看了一下apache错误.下面是我得到的:

[Wed Oct 12 15:27:23 2011] [notice] child pid 3580 exit signal Segmentation fault (11)
[Wed Oct 12 15:27:34 2011] [notice] child pid 3581 exit signal Segmentation fault (11)
[Wed Oct 12 15:30:52 2011] [notice] child pid 3549 exit signal Segmentation fault (11)
[Wed Oct 12 16:04:27 2011] [notice] child pid 3579 exit signal Segmentation fault (11)
zend_mm_heap corrupted
[Wed Oct 12 16:26:24 2011] [notice] child pid 3625 exit signal Segmentation fault (11)
[Wed Oct 12 17:57:24 2011] [notice] child pid 3577 exit signal Segmentation fault (11)
[Wed Oct 12 17:58:54 2011] [notice] child pid 3550 exit signal Segmentation fault (11)
[Wed Oct 12 17:59:52 2011] [notice] child pid 3578 exit signal Segmentation fault (11)
[Wed Oct 12 18:01:38 2011] [notice] child pid 3683 exit signal Segmentation fault (11)
[Wed Oct 12 22:20:53 2011] [notice] child pid 3778 exit signal Segmentation fault (11)
[Wed Oct 12 22:29:51 2011] [notice] child pid 3777 exit signal Segmentation fault (11)
[Wed Oct 12 22:33:42 2011] [notice] child pid 3774 exit signal Segmentation fault (11)

这个分段故障是什么,我如何修复它?

更新:

PHP Version 5.3.4, OSX local development
Server version: Apache/2.2.17 (Unix)
CakePhp: 1.3.10

推荐答案

将gdb连接到httpd子进程之一,重新加载或继续工作,等待崩溃,然后查看回溯.这样做:

$ ps -ef|grep httpd
0     681     1   0 10:38pm ??         0:00.45 /Applications/MAMP/Library/bin/httpd -k start
501   690   681   0 10:38pm ??         0:00.02 /Applications/MAMP/Library/bin/httpd -k start

...

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

(gdb) backtrace full

应该会给你一些线索到底是怎么回事.如果您提交错误报告,您应该包括回溯.

如果崩溃很难重现,那么最好将Apache配置为只使用一个子进程来处理请求.配置如下:

StartServers 1
MinSpareServers 1
MaxSpareServers 1

Php相关问答推荐

Laravel变形 map 不适用于扩展模型

Laravel中的通配符Undot数组

在WooCommerce Checkout帐单地址字段后插入自定义按钮

make dd()如何正确工作?¨

Yahoo Finance API文件_GET_CONTENTS 429请求太多

Laravel:让所有用户在一年中的特定月份休息几天

从WooCommerce购物车和 checkout 页面自定义发货标签

在WooCommerce我的帐户部分添加带有自定义链接的自定义菜单项

如何在Livewire 3 Form类中做依赖注入?

为什么只有最后一次点击的点赞/心形会按预期改变 colored颜色 ,而其他的保持正常 colored颜色 ?

将购物车按钮重定向到Checkout-Wooccommerce

更改WooCommerce checkout 中的错误消息以获得不可用的送货方式

对产品/库存结果集进行分组和计数,形成多维分层数组

从插件更改主题功能,function_exists 不起作用

如何在 PHP 中对具有相同数组值的值求和

CodeIgniter 4中嵌套过滤器组不起作用

在WooCommerce我的账户单个订单页面中添加订单商品部分和按钮

如何在 laravel 中的同一个 slug 上显示不同的内容?

将变量从中间件传递到控制器 Laravel

使用 splat 运算符时按引用传递 (...)