我对 PHP5.4.11 和 APC 扩展(在 apache2 上)有疑问。在缓存一定数量的文件后,它会崩溃。我猜我需要一个核心转储来用 gdb 调查它?我还假设我必须使用调试标志编译扩展(或者可能)整个 PHP 以使源代码对 gdb 可见?
以上是我的猜测。如果有更好的方法,我愿意接受建议。
尝试在您编译的 C 代码中添加一个段错误处理程序,这将帮助您找到问题所在
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <execinfo.h>
#include <signal.h>
void *array[50];
char **strings;
size_t size,i;
void handler(int)
{
size = backtrace(array,50);
strings = backtrace_symbols(array,size);
for (i=0;i < size;i++)
printf("%s\n",strings[i]);
free(strings);
printf("sig sev caught\n");
exit(0);
}
void toto()
{
char *x;
*x = 8; // writing uninitialized pointer
}
int main()
{
signal(SIGSEGV,handler);
toto();
}