linux的core文件认识

今天早上,一个同事过来找我,说让我启动linux的core文件,说真的还真是没有弄过都不知道是东西,最后在网上一查才知道是干什么用的,在一个程序崩溃时,它一般会在指定目录下生成一个core文件。core文件仅仅是一个内存映象(同时加上调试信息),主要是用来调试的。
 
按照网上的资料看了看自己的机器,确实linux默认是限制core文件大小的,默认是0,如何看自己机器的core文件大小呢,用下面的命令:
# ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
file size               (blocks, -f) unlimited
pending signals                 (-i) 69632
max locked memory       (kbytes, -l) 32
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 69632
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited
 
可以看到core file size          (blocks, -c) 0 默认为0
 
我们把他改下,利用这个命令来进行修改, ulimit -c 1024, 然后再看看
# ulimit -a
core file size          (blocks, -c) 1024
data seg size           (kbytes, -d) unlimited
file size               (blocks, -f) unlimited
pending signals                 (-i) 69632
max locked memory       (kbytes, -l) 32
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 69632
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited
 
现在已经设置成1024了,我们到自己写的程序下面执行自己的程序,发现当程序发生错误时,会生成一个core文件用来发现自己程序的错误.
 
如何查看core,用到这个命令 gdb core文件名.

你可能感兴趣的:(linux,职场,休闲)