1.查看linux生成core文件的开关
ulimit -c
0--->不生成core;
ulimit -c filesize
设定core文件的大小,单位kb, 如ulimit -c umlimited,标示不受限制;
/proc/sys/kernel/core_use_pid
是否core文件是否加pid,若为0,core文件名不加pid;
echo 1>/proc/sys/kernel/core_use_pid
/etc/profile
ulimit -S -c 0 >/dev/null 2>&1 //限制不core dump;
~/.bash_profile
ulimit -c unlimited //可以设定指定用户是否支持core dump;
2.gdb加载core
gdb --core=core.*** ./a.out
gdb -c core.*** ./a.out
3.如何让程序core dump
(1)上述设置能让程序在异常状态core dump;
(2)直接发信号让程序直接core dump
SIGQUIT :直接退出,并core dump; kill -SIGQUIT pid;
SIGABRT:异常退出,并core dump ; kill -SIGABRT pid;
SIGSEGV :进程进行一次无效存储访问; kill -SIGSEGV pid;
(3)不中断程序运行的core dump方法;
gcore pid //直接core dump指定进程, 且命令运行后程序可以正常运行;
阅读(394) | 评论(0) | 转发(0) |