我在dmesg中为每个请求获得一个空白页面和一个新条目。
GraphDatabaseFactory
我已经发现它是由php-memcache引起的。将我的缓存驱动程序切换到除memcached之外的任何内容时,它似乎正常工作(我已经测试过文件和数组=>没有缓存)。但是,由于我想要memcached,我想知道如何进一步调查?
答案 0 :(得分:4)
如何理解dmesg中的php错误
这非常简单:它告诉您php
二进制文件映射到地址范围[0x400000, 0x400000+33c000)
(Linux上x86_64
二进制文件的正常)以及各种进程(pid) 41369
,41399
等)崩溃,寄存器rip
(也就是程序计数器)设置为0x5c0cc3
,并注册rsp
(也就是堆栈指针)设置为各种值(堆栈在Linux上随机化)。
由于所有rip
值都相同,因此崩溃发生在所有实例的完全相同的位置。
我该如何进一步调查?
您需要为此php
版本安装调试符号。
一旦你这样做,你可以先确定发生崩溃的功能,如下所示:
gdb /path/to/php
(gdb) x/i 0x5c0cc3 # GDB will tell you instruction and function
一旦您了解该功能,您就可以谷歌寻找解决方案或已知错误。
您还可以将GDB附加到正在运行的php
进程,然后发出请求。如果php
崩溃,您现在可以通过(gdb) where
命令查看导致崩溃的调用堆栈。
除此之外,您可以从源代码构建php
包,禁用优化,并进行源代码调试。
所有这一切都假定您知道如何编译包,如何调试C
代码等。如果您不知道,那么您将不得不招募那些人。< / p>