linux core文件设置

http://blog.csdn.net/ctthuangcheng/article/details/8963551

linux core文件设置

分类: Linux OS Debugging Technique2013-05-23 09:51 1446人阅读 评论(0) 收藏 举报

在Linux中,一般当进程非正常退出时,会生成一个core文件,这个文件是进程猝死时内存的转储文件,也称为core dump。

查看Linux脚本解析方式:

echo $0

1.检验core是否打开

以see/see登录

csh:  limit;    coredumpsize = 0 , 说明没有打开core, 否则打开了。

bash: ulimit –a ;  关注红色部分。 如果是0,表示core没有打开,否则打开了。

2.开启core,设置大小

如果没有开启,永久开启

······以root/huawei用户登录,vi /etc/security/limits.conf ,注意红色部分

soft  <  hard大小

临时指定大小,以see/see用户登录,

csh: limit coredumpsize 4096000

bash: ulimit -c 4096000  大小低于/etc/security/limits.conf中设置的大小

注意:这些都是临时的,一旦该活跃窗口关闭后再次打开,设置的core大小就失效了。

3. core路径配置

注意:指定的core路径有写入权限

以see/see用户登录,/sbin/sysctl -a |grep core, 查看目前core文件生成的路径

然后肉眼查一下 kernel.core_pattern 和 kernel.core_uses_pid 两个配置值是多少。

kernel.core_pattern: core文件路径

kernel.core_uses_pid: 生成core文件,后缀是否带pid  1:带; 0 :不带

临时修改路径(需要root权限)

/sbin/sysctl -w kernel.core_pattern=/core/core.%e.%p

/sbin/sysctl -w kernel.core_uses_pid=0

%p – insert pid into filename  ---   显示进程号

%u – insert current uid into filename ---  用户ID

%g – insert current gid into filename ---  组ID

%s – insert signal that caused the coredump into the filename ---添加导致产生core的信号

%t – insert UNIX time that the coredump occurred into filename --- 时间

%h – insert hostname where the coredump happened into filename --- 主机名

%e – insert coredumping executable name into filename  --- 名字

永久修改路径(需要root权限,机器重新启动也会生效):

修改/etc/sysctl.conf,添加2行即可:

kernel.core_pattern = /core/core.%e.%p

kernel.core_uses_pid = 0

设置生效
sysctl -p /etc/sysctl.conf

4. 产生core(用于自测试)

以see/see用户,ksh;kill -11 $$

5. 定位分析core

gdb  container  core文件

然后:bt

6 .关闭core

临时关闭:

csh: limit coredumpsize 0

bash: ulimit -c 0

注意:这些都是临时的,一旦该活跃窗口关闭后再次打开,设置的core大小就失效了。

永久关闭:

以root/huawei用户登录,vi /etc/security/limits.conf ,注意红色部分为0

时间: 2024-10-10 11:16:49

linux core文件设置的相关文章

Linux core 文件介绍

Linux core 文件介绍 http://www.cnblogs.com/dongzhiquan/archive/2012/01/20/2328355.html 1. core文件的简单介绍在一个程序崩溃时,它一般会在指定目录下生成一个core文件.core文件仅仅是一个内存映象(同时加上调试信息),主要是用来调试的. 2. 开启或关闭core文件的生成用以下命令来阻止系统生成core文件:ulimit -c 0下面的命令可以检查生成core文件的选项是否打开:ulimit -a该命令将显示

Linux的Core文件设置与调试

一.运行时错误 任何人写程序都会出错,正如<C++编程规范>所说,真正可怕的错误不是编译时的错误,而是运行时错误. 有的程序可以通过编译, 但在运行时会出现Segment fault(段错误) 这通常都是指针错误(一般就是空指针)引起的,或者访问了不能访问的内存(数组越界,系统保护) 二.core文件 我们不可能用GDB一句一句的去找,真正的英雄都善于使用手中的武器.这就是core file 所谓core,就是当程序down掉的时候,操作系统把程序的内存内容dump下来,这个动作就是core

linux下core文件设置(转)

在程序不寻常退出时,内核会在当前工作目录下生成一个core文件(是一个内存映像,同时加上调试信息).使用gdb来查看core文件,可以指示出导致程序出错的代码所在文件和行数. 1.core文件的生成开关和大小限制 1)使用ulimit -c命令可查看core文件的生成开关.若结果为0,则表示关闭了此功能,不会生成core文件. 2)使用ulimit -c filesize命令,可以限制core文件的大小(filesize的单位为kbyte).若ulimit -c unlimited,则表示cor

linux core文件调试

在完成公司项目,测试进程的时候,经常会发现日志到了某一段特定的代码的时候就没了,进程直接退出,也没有捕获到任何的异常信息,如果日志打印的较多还可能比较容易发现问题,如果日志较少,就很难进行进一步的查错了. 但是发现在该目录下生成了一个core文件,可以帮助我们查找程序崩溃的原因. 1. 什么是core文件 在linux系统下,如果进程不能正常运行,就可能会产生core文件.core文件就是当前内存状态的一个映像,同时加上一些调试信息. bug和操作系统或硬件的保护机制都会导致程序异常终止,操作系

(转)Linux core 文件介绍与处理

1. core文件的简单介绍在一个程序崩溃时,它一般会在指定目录下生成一个core文件.core文件仅仅是一个内存映象(同时加上调试信息),主要是用来调试的. 2. 开启或关闭core文件的生成用以下命令来阻止系统生成core文件:ulimit -c 0下面的命令可以检查生成core文件的选项是否打开:ulimit -a该命令将显示所有的用户定制,其中选项-a代表“all”. 也可以修改系统文件来调整core选项在/etc/profile通常会有这样一句话来禁止产生core文件,通常这种设置是合

Linux core 文件

http://blog.csdn.net/mr_chenping/article/details/13767609 在程序不寻常退出时,内核会在当前工作目录下生成一个core文件(是一个内存映像,同时加上调试信息).使用gdb来查看core文件,可以指示出导致程序出错的代码所在文件和行数. 1.core文件的生成开关和大小限制 --------------------------------- 1)使用ulimit -c命令可查看core文件的生成开关.若结果为0,则表示关闭了此功能,不会生成c

linux core开启设置

ulimit -c unlimitedulimit -HSn 1024000echo "%e.core" > /proc/sys/kernel/core_pattern 测试kill -9 $$kill -s SIGSEGV $$

用gdb分析core文件及常见gdb命令操作示例

1.概述 在实际的软件开发项目中,程序出现问题是在所难免的.遥想本人参加工作之后首次遇到程序的情景,至今还历历在目.之前的经验告诉我,我们越是惊慌失措,问题就越是解决不了.我们要先让自己平静下来,然后再寻找解决程序问题的办法. 在Linux下做开发的朋友,想必都与core文件打过交道.当看到自己的程序运行之后出现core时,很多人都慌乱了,仿佛天快要塌下来一样.其实,我们大可不必如此,只要我们掌握了用gdb调试core文件的办法,依然可以很快定位程序问题,一举将bug消灭掉.有关Linux co

GDB + core 文件调试程序

https://segmentfault.com/a/1190000002703073 生成CORE文件并调试core 文件调试程序文件: 查看系统CORE文件设置:ulimit -a core file size 0说明没打开core  (程序出错崩溃系统记录程序的上下问 内存 cpu等信息供调试) 打开CORE文件:ulimit -c unlimited 或者ulimit -c 1000 禁用:ulimit -c 0 调试CORE文件: gdb programbin corefile >wh