php-fpm开启core dump
转载自:https://kn007.net/topics/php-fpm-how-to-core-dump/
首先一点,需要打开debug参数,如果编译的时候没有打开,需要重新编译,编译时添加参数:
--enable-debug
设置内核core dump出来的存放路径(注意目录要有权限给php写):
echo "/tmp/core.%e.%p.%t" > /proc/sys/kernel/core_pattern
设置core dump出来的文件大小不做限制:
ulimit -c unlimited
关闭core dump只需要将大小限制为0就不会输出了(获得调试信息后设置这个就关闭core dump了)
ulimit -c 0
测试core dump是否开启成功
创建c程序文件
vim a.c
#include <stdio.h>;
int func(int *p)
{
*p = 0;
}
int main()
{
func(NULL);
return 0;
}
gcc -o main a.c#编译
./main#执行,然后就会出现这个文件了
获得core dump文件,用gdb进行调试,比如:
gdb ~/main core.main.5021.iZ23sw4oxfvZ.1477623334