一.  coredump功能介绍

1.  coredump功能原理

当程序发生内存越界访问等行为时,会触发 OS 的保护机制,此时, OS 会产生一个信号(signal)发送给对应的进程。当进程从内核态到用户态切换时,该进程会处理这个信号。此类信号(比如SEGV)的默认处理行为生成一个 coredump 文件。

2. 可产生 coredump 文件的信号

以下表格中信号也会产生 coredump 文件,补充说明如下:

二.  开启 coredump 功能

这里使用永久开启 coredump 功能的方法,即更改 /etc/security/limits.conf 文件中的内容。

Linux系统开启 coredump 功能,操作如下:

去掉 soft core 0 一行前面的注释 ,同时,将 0 改为 unlimited 某个数值(如 204800)。如下所示:

wangtian@wangtian-virtual-machine:~$ sudo gedit /etc/security/limits.conf

更改 limits.conf 文件中内容,如下:

验证是否开启:终端输入 ulimit -c 命令。如下所示:

wangtian@wangtian-virtual-machine:~$ ulimit -c
204800

可以看出,已经开启 coredump 功能。

Logo

更多推荐