Linux下指定生成core文件的方法

Linux下编译程序的非正常崩溃提示为“CORE DUMP”,然而在一般情况下却不知道程序为什么会core dump

通过开启linux的core dump可以指定程序崩溃时生成core文件,core文件生成的目录在运行程序的同目录,文件名称一般为core.XXXX等

查看生成core文件是否开启:[root@localhost ~]#ulimit -c

其他参数说明:

[root@localhost /]# ulimit -a
core file size          (blocks, -c) 1024
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 127470
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 10240
cpu time               (seconds, -t) unlimited
max user processes              (-u) 127470
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited
[root@localhost /]#

结果为0则代表当前所有程序异常崩溃不生成core文件,

[root@localhost ~]# ulimit -c
0       #当前值表示不生成core文件
[root@localhost ~]#

[root@localhost ~]#ulimit -c unlimited   #开启生成core文件,文件大小无限制

[root@localhost ~]#ulimit -c 1024  #开启生成core文件,文件大小限制在1024KB以内

此时再次输入ulimit则能看到core生成规则:

[root@localhost ~]# ulimit -c
0
[root@localhost ~]# ulimit -c 1024
[root@localhost ~]# ulimit -c
1024
[root@localhost ~]#

root@localhost ~]#ulimit -c 0     #关闭core文件生成

在core生成开启的情况下,linux的程序在异常崩溃时一定会产生core文件,当core文件超过限定的大小时,文件将不生成

若在ulimit -c 1024情况下异常崩溃没有生成core文件,则可以通过ulimit -c unlimited 将core的文件规定设置为无限制

查看core文件:

[root@localhost]# gdb -c core.100001    #gdb -c core_filename

posted @ 2020-04-07 10:52  古语云  阅读(643)  评论(0编辑  收藏  举报