今天早上,一个同事过来找我,说让我启动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文件名.
阅读(4214) | 评论(1) | 转发(0) |