调试 sigsegv 故障 Apache

调试 sigsegv 故障 Apache

从生产中行为不当的 Apache 服务器获取有意义的 gdb 回溯的最佳方法是什么?

 [Tue Aug 02 16:07:12 2011] [notice] child pid 27681 exit signal Segmentation fault (11)

这可能是某些 Apache 模块在做坏事,但我需要符号 gdb 回溯来开始调试什么和在哪里。

  • 如何在 Ubuntu 上为 Apache 启用调试符号

  • 如何从 Apache 子进程中提取一个且仅一个核心转储

  • 如何在 gdb 中重新打开此文件

Ubuntu 8.04/Linux。

答案1

配置 Apache Web 服务器以在发生分段错误时进行核心转储

您可能还需要将核心转储大小限制设置为无限制/etc/security/limits.conf

*    hard    core    unlimited

登录,检查核心大小没有受到限制ulimit -a,然后重新启动 apache。

要分析核心文件,启动 gdb:

gdb /usr/lib/apache2/mpm-worker/apache2 /path/to/core.dump

gdb 命令bt打印出堆栈跟踪。

相关内容