在Drupal 7项目中执行特定操作*时,我在/var/log/apache2/error.log
中收到以下错误:
[Fri Jun 26 09:53:55.307644 2015] [core:notice] [pid 1553] AH00051:child pid 9998退出信号分段错误(11),/ etc / apache2中可能的coredump
除了使用Xdebug的分步功能时,它不会崩溃
使用xdebug.auto_trace=ON
时,它也不会崩溃。
除了使用Xdebug外,什么可能导致PHP中的分段错误?
*:发送电子邮件时发生错误,但当收件人是当前登录的用户时,仅。
通过在代码中添加日志消息,我已经能够确定在自动加载MailMIME类时发生崩溃。
在includes/bootstrap.inc
中,在_registry_check_code
函数中,如果我输入以下代码:
if($type == 'class' && $name == 'MailMIME')
{
file_put_contents('/tmp/log.txt', "DEBUG 01\n", FILE_APPEND);
}
第3147行之前的,即:
$file = Database::getConnection('default', 'default')->query("SELECT filename FROM {registry} WHERE name = :name AND type = :type", array(
':name' => $name,
':type' => $type,
))
->fetchField();
然后,我可以在我的日志文件中看到“DEBUG 01”,它崩溃了。
但是,如果我在行3147到3151之后输入相同的代码,它就会停止崩溃......
编辑:我能够使用PHP 5.5在我的Ubuntu 14.04计算机上重现该错误,但我无法在使用PHP 5.6的Windows计算机上重现它。