在Linux中,一般当进程非正常退出时,会生成一个core文件,这个文件是进程猝死时内存的转储文件,也称为core dump。
查看Linux脚本解析方式:
echo $0
1.检验core是否打开
以see/see登录
csh: limit; coredumpsize = 0 , 说明没有打开core, 否则打开了。
bash: ulimit –a ; 关注红色部分。 如果是0,表示core没有打开,否则打开了。
2.开启core,设置大小
如果没有开启,永久开启
······以root/huawei用户登录,vi /etc/security/limits.conf ,注意红色部分
soft < hard大小
临时指定大小,以see/see用户登录,
csh: limit coredumpsize 4096000
bash: ulimit -c 4096000 大小低于/etc/security/limits.conf中设置的大小
注意:这些都是临时的,一旦该活跃窗口关闭后再次打开,设置的core大小就失效了。
/*==============================================================*/
/*查询isinter守护进程 */
/*==============================================================*/
ps -ef | grep isinter
/*==============================================================*/
/*关闭isinter守护进程 */
/*==============================================================*/
kill 进程ID
/*==============================================================*/
/*打开profile */
/*==============================================================*/
vi /etc/profile
/*==============================================================*/
/*在profile末尾添加 */
/*==============================================================*/
ulimit -c unlimited
/*==============================================================*/
/* 使用source命令使之马上生效 */
/*==============================================================*/
source /etc/profile
/*==============================================================*/
/* 打开kernel参数 */
/*==============================================================*/
vi /etc/sysctl.conf
/*==============================================================*/
/* 添加kernel参数 */
/*==============================================================*/
kernel.core_pattern = /home/core/core_%e_%p_%t
kernel.core_uses_pid = 0
/*==============================================================*/
/* 修改结果马上生效 */
/*==============================================================*/
/sbin/sysctl -p
/*==============================================================*/
/*创建/home/core 目录 */
/*==============================================================*/
mkdir /home/core
1、sudo su
2、vim /etc/profile
添加 ulimit -c unlimited
3、在你的主目录下创建core文件夹,比如我在/home/ji下创建core文件夹
4、vim /etc/sysctl.conf
添加
kernel.core_pattern=/home/ji/core/core_%e_%p_%t
kernel.core_uses_pid=0
说明:
%e 文件名
%p 进程pid
%t 时间
5、reboot 重启电脑
6、编译一个测试文件,a.c
#include <stdio.h>
int main(void)
{
int *a = NULL;
*a = 0x1;
return 0;
}
7、gcc -g a.c -o a.out
8、运行a.out,看一下core文件夹下面有没有core文件