corefile的设置与使用

一、简介

corefile是Linux下程序崩溃时生成的文件,可以用来分析程序崩溃的原因,因为它内部包含了程序崩溃时的堆栈信息。

二、corefile的设置

默认情况下,程序崩溃是不会生成corefile了,因为被操作系统限制。可以通过命令: ulimit -c 来查看,如果值为0则表示被限制了。

打开的方式有多种,最简单的是: ulimit -c unlimited 其中unlimited表示corefile文件的大小无限制,默认为0,所以不能生成corefile文件,你也可以指定其他的值。

这种设置方式虽然简单,但它却只是跟shell相关的,也就是说,如果我们关闭了当前shell再打开一个,则刚才的设置就失效了,这是很不方便的。

另外一种方式时修改文件:/etc/security/limits.conf。将其中的这一行 #* soft core 0 取消注释并将最后的0修改为unlimited或者你希望的值。

这个修改需要重启系统的时候才会生效,当然也有使其立即生效的方法:

默认corefile是生成在程序的执行目录下或者程序启动调用了chdir之后的目录,那么我们可以通过设置生成corefile的格式来控制它,让其生成在固定的目录下。

在/proc/sys/kernel/core_pattern文件中的内容控制着它的格式。但是这里的设置在重启后会失效,如果想要长期生效,那么久需要修改文件:/etc/sysctl.conf,在其中添加一行:kernel.core_pattern=/home/robin/corefile/%e-%p,这个格式表示将corefile放在/home/robin/corefile目录下,每个corefile的格式为:程序名+进程id。当然修改文件/etc/sysctl.conf是不能立即生效的,如果想要立即生效:sysctl -p /etc/sysctl.conf,即可。

关于格式的的控制有如下几个参数:

%%:相当于%

%p:相当于<pid>

%u:相当于<uid>

%g:相当于<gid>

%s:相当于导致dump的信号的数字

%t:相当于dump的时间

%e:相当于执行文件的名称

%h:相当于hostname

参考:http://blog.csdn.net/longxj04/article/details/7056853

三、corefile的使用

我们费了这么大的力气生成了这个corefile当然不是为了只是看看而已,我们需要从它里面的内容分析出程序崩溃的原因。

这就需要使用到我们的另一个工具:gdb。

时间: 2024-10-08 10:08:34

corefile的设置与使用的相关文章

ubuntu下core file文件生成及调试

1.简介:corefile 是Linux下程序崩溃时生成的文件,可以用来分析程序崩溃的原因,因为它内部包含了程序崩溃时的堆栈信息. 2.corefile的设置 默认情况下,程序崩溃是不会生成corefile的,因为被操作系统限制.可以通过命令: ulimit -c 来查看,如果值为0则表示被限制了,所以不能生成corefile文件. 如果要使用corefile文件分析程序和系统异常信息,可以通过如下命令打开,其中unlimited表示corefile文件的大小无限制. $ ulimit -c u

设置Sysctl.conf用以提高Linux的性能(最完整的sysctl.conf优化方案)

Sysctl是一个允许您改变正在运行中的Linux系统的接口.它包含一些 TCP/IP 堆栈和虚拟内存系统的高级选项, 这可以让有经验的管理员提高引人注目的系统性能.用sysctl可以读取设置超过五百个系统变量.基于这点,sysctl(8) 提供两个功能:读取和修改系统设置. 查看所有可读变量: % sysctl -a 读一个指定的变量,例如 kern.maxproc: % sysctl kern.maxproc kern.maxproc: 1044 要设置一个指定的变量,直接用 variabl

在linux平台下,设置core dump文件属性(位置,大小,文件名等)

在linux平台下,设置core dump文件生成的方法: 1) 在终端中输入ulimit -c 如果结果为0,说明当程序崩溃时,系统并不能生成core dump. 2) 使用ulimit -c unlimited命令,开启core dump功能,并且不限制生成core dump文件的大小.如果需要限制,加数字限制即可.ulimit - c 1024 3) 默认情况下,core dump生成的文件名为core,而且就在程序当前目录下.新的core会覆盖已存在的core.通过修改/proc/sys

linux下生成core dump文件方法及设置

core dump的概念: A core dump is the recorded state of the working memory of a computer program at a specific time, generally when the program has terminated abnormally (crashed). In practice, other key pieces of program state are usually dumped at the s

linux下生成core dump文件方法及设置【转】

转自:http://blog.csdn.net/mrjy1475726263/article/details/44116289 源自:http://andyniu.iteye.com/blog/1965571 core dump的概念: A core dump is the recorded state of the working memory of a computer program at a specific time, generally when the program has te

Linux生成core文件、core文件路径设置

1.设置core文件大小 列出所有资源的限制: ulimit -a ulimit -a.png 或者查看core file size: ulimit -c core file size:unlimited:core文件的大小不受限制0:程序出错时不会产生core文件1024:代表1024k,core文件超出该大小就不能生成了 设置core文件大小: ulimit -c fileSize 注意: 尽量将这个文件大小设置得大一些,程序崩溃时生成Core文件大小即为程序运行时占用的内存大小.可能发生堆

linux 下core文件生成、路径、格式设置及调试

core文件生成及调试1 代码 #include<stdio.h> int main() { int *p = NULL; *p = 0; return 0; } 2 在当前shell执行ulimit -c unlimited 注意:该命令只在当前shell生效,其他shell会失效ulimit -c是0,生成core文件失败. 3 设置core文件格式和生成路径,默认在执行程序当前目录下,执行以下两条命令: echo "1" > /proc/sys/kernel/c

linux下Nginx配置文件(nginx.conf)配置设置详解(windows用phpstudy集成)

linux备份nginx.conf文件举例: cp /usr/local/nginx/nginx.conf /usr/local/nginx/nginx.conf-20171111(日期) 在进程列表里 面找master进程,它的编号就是主进程号. ps -ef | grep nginx 查看进程 cat /usr/local/nginx/nginx.pid 每次修改完nginx文件都要重新加载配置文件linux命令: /usr/local/nginx -t //验证配置文件是否合法 若ngin

win7设置固定IP重启后无法上网,ipconfig显示为自动配置IPV4 169.254的地址

近日安装原版Win7系统打完网卡驱动补丁后,给电脑设置了固定的IP地址后一切正常,但是电脑重启后发现上不了网了,右下角网络图标有个感叹号,打开网络和共享中心-->本地连接-->详细信息-->发现IPv4的地址与ipconfig /all得到的IP地址一致,均显示为:自动配置IPv4地址:169.254.123.188(首选) 但是查看本地连接-->属性里看到之前设置的固定IP地址是没有问题的, 所以想到了应该是电脑启用了自动配置IPv4功能,导致了固定IP无法分配给电脑, 尝试用命