我使用mod_rails(passenger)2.0.3和Enterprise Ruby 1.8.6在Apache 2上运行Redmine。我尝试登录时经常会遇到来自Apache的段错误。有谁知道如何调试这个问题?我在Apache的error.log中看到类似的东西:
[Mon Jan 19 17:09:48 2009] [notice] child pid 8714退出信号分段错误(11)
我可以让应用程序工作的唯一方法就是重新启动整个系统(重新启动Apache不起作用)。
答案 0 :(得分:1)
第一步是:
找出核心文件在系统中的位置(必要时启用核心转储)。
在生成的核心文件上运行file(1)
。这可能会说“......由httpd生成”,但也可以检查。
针对(2)中的可执行文件名称和(1)中的核心文件启动gdb
,然后开始挖掘。命令where
(或bt
)是一个很好的起点:这将在进程转储核心时为您提供堆栈跟踪。
听起来你没有大量的C编码经验,祝你好运!追踪这种错误可能是一个真正的狗。您可以尝试在此处发布(3)堆栈跟踪,但在等待答案时不要屏住呼吸。最好的情况是,失败的函数名称可能是一个很好的字符串,可以提供给Google。
答案 1 :(得分:0)
我遇到了类似的段错误问题(11)。找到了以下question on ServerFault,它提供了升级解决方案。
运行旧版本的Ubuntu并遇到了段错误问题。一个do-release-upgrade
将我的系统带到了Ubuntu 11.10,这个问题神奇地消失了。