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

标签: php, php-fpm

添加新评论