需要帮助从 apache 段错误生成核心转储

需要帮助从 apache 段错误生成核心转储

我有一个脚本,它会间歇性地在 Firefox 中返回死机白屏,并且Error 324 (net::ERR_EMPTY_RESPONSE): Unknown error. chrome.

当我尝试使用 PHP HTTP 客户端(如 Zend_Http_Client)访问脚本时,间歇性地出现异常(抱歉,我目前没有确切的消息)。

我怀疑是段错误。错误日志中的以下几行进一步证实了这一点:[Thu Mar 18 16:03:02 2010] [notice] child pid 845 exit signal Segmentation fault (11)

现在,我正在运行 RedHat,并且我知道 RedHat 不会生成开箱即用的核心转储。我按照此处的说明进行操作http://kbase.redhat.com/faq/docs/DOC-5353,但我没有看到任何核心转储。

如何生成核心转储?

答案1

这可能与我在 Centos(基于 Redhat)上生成核心转储时找到的解决方案有关。相关答案是这里,尽管是针对 php-fpm 而不是 apache。

对我来说,问题在于,如果某个进程改变了自己的执行权限,则不允许生成核心转储文件,除非/proc/sys/fs/suid_dumpable设置为允许这样做。请参阅有关此内核级控制的信息这里

如果 apache 以 root 身份初始化并以降低的权限运行其工作进程,则除了需要设置的其他设置(核心转储路径、核心大小限制等)之外,上述选项还可能会影响它。

答案2

您需要使用调试符号重新编译您的程序。

我曾针对此主题撰写过一篇小文章:http://alekseykorzun.com/post/5251031042/debugging-crashes-on-freebsd;它是 FreeBSD 特有的,但可能会对您有所帮助。

相关内容