linux下core file size设置笔记
现象说明:突然发现一台测试机器的java程序莫名其妙地没了,但是没有core dump!这就需要打开服务器的core文件生成的功能了,(即core dump文件),方便程序调试。
1)core文件简介
core文件其实就是内存的映像,当程序崩溃时,存储内存的相应信息,主用用于对程序进行调试。当程序崩溃时便会产生core文件,其实准确的应该说是core dump 文件,默认生成位置与可执行程序位于同一目录下,文件名为core.***,其中***是某一数字。
2)开启或关闭core文件的生成
查看core文件生成功能是否打开,如下若是0,则表示没有打开。
[root@localhost ~]# ulimit -c
0 临时设置(如下设置2G,单位为kbyte)
如果生成的信息超过此大小,将会被裁剪,最终生成一个不完整的core文件。在调试此core文 件的时候,gdb会提示错误。
[root@localhost ~]# ulimit -c 4194304 永久设置
[root@localhost ~]# echo " * soft core 4194304" >> /etc/security/limits.conf
[root@localhost ~]# echo " * hard core 4194304" >> /etc/security/limits.conf [root@localhost ~]# ulimit -a
core file size (blocks, -c) 4194304
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 15189
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) unlimited
open files (-n) 65535
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 10240
cpu time (seconds, -t) unlimited
max user processes (-u) 102400
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited 若ulimit -c unlimited,则表示core文件的大小不受限制
[root@localhost ~]# ulimit -c unlimited
3)core文件的使用
在core文件所在目录下键入:
[root@localhost ~]# gdb -c core (-c指定core文件)
它会启动GNU的调试器,来调试core文件,并且会显示生成此core文件的程序名,中止此程序的信号等等 如果你已经知道是由什么程序生成此core文件的,比如MyServer崩溃了生成core.12345,那么用此指令调试:
[root@localhost ~]# gdb -c core MyServer
4)产生core文件的测试
直接输入指令:
[root@localhost ~]# kill -s SIGSEGV $$ 扩展:
ulimint -a 用来显示当前的各种用户进程限制 Linux对于每个用户,系统限制其最大进程数,为提高性能,可以根据设备资源情况,
设置个Linux用户的最大进程数,一些需要设置为无限制:
数据段长度:ulimit -d unlimited
最大内存大小:ulimit -m unlimited
堆栈大小:ulimit -s unlimited
5)core文件的名称和生成路径
core文件生成路径:
输入可执行文件运行命令的同一路径下。 若系统生成的core文件不带其它任何扩展名称,则全部命名为core。新的core文件生成将覆盖原来的core文件。 1)/proc/sys/kernel/core_uses_pid可以控制core文件的文件名中是否添加pid作为扩展。文件内容为1,表示添加pid作为扩展名,
生成的core文件格式为core.xxxx;为0则表示生成的core文件同一命名为core。
可通过以下命令修改此文件:
# echo "1" > /proc/sys/kernel/core_uses_pid 2)proc/sys/kernel/core_pattern可以控制core文件保存位置和文件名格式。
可通过以下命令修改此文件,可以将core文件统一生成到/corefile目录下,产生的文件名为core-命令名-pid-时间戳
# echo "/corefile/core-%e-%p-%t" > core_pattern 以下是参数列表:
%p - insert pid into filename 添加pid
%u - insert current uid into filename 添加当前uid
%g - insert current gid into filename 添加当前gid
%s - insert signal that caused the coredump into the filename 添加导致产生core的信号
%t - insert UNIX time that the coredump occurred into filename 添加core文件生成时的unix时间
%h - insert hostname where the coredump happened into filename 添加主机名
%e - insert coredumping executable name into filename 添加命令名
linux下core file size设置笔记的更多相关文章
- linux下core 相关设置
1)core文件简介core文件其实就是内存的映像,当程序崩溃时,存储内存的相应信息,主用用于对程序进行调试.当程序崩溃时便会产生core文件,其实准确的应该说是core dump 文件,默认生成位置 ...
- [转载]linux下core文件设置与查看
转自:https://blog.csdn.net/dingqinghui/article/details/77855330?locationNum=9&fps=1 linux下core文件设置 ...
- linux下core dump
1.前言 一直在从事linux下后台开发,经常与core文件打交道.还记得刚开始从事linux下开发时,程序突然崩溃了,也没有任何日志.我不知所措,同事叫我看看core,我却问什么是core,怎么看. ...
- [转载]Linux下终端字体颜色设置方法
原文地址:Linux下终端字体颜色设置方法作者:router 网上类似的文章有很多,但是都是转来转去的,没有经过测试,按照很多文章的方法会造成你设置之后的终端在换行和删除输入字符时终端显示会乱七八糟, ...
- Linux下网卡混杂模式设置和取消
工作中发现一个网卡工作状态不对了,查看了一下,发现这个网卡和正常工作的网卡 信息不一样,它显示的居然是混杂模式,而正常工作的是 running 模式 ,所以来了解下混杂模式怎么取消... 下文来自 ...
- 环境变量解释以及在Linux下的环境变量设置
一.环境变量解释 环境变量是什么? 引用百度百科里面的解释:环境变量是操作系统中一个具有特定名字的对象,它包含了一个或者多个应用程序所将使用到的信息.例如Windows系统中的path环境变量,当要求 ...
- -bash: ulimit: core file size: cannot modify limit: Operation not permitted
一.问题描述 使用普通用户执行某个软件加载环境变量时报错 -bash: ulimit: core file size: cannot modify limit: Operation not permi ...
- Linux 下配置 hosts 并设置免密登录
Linux 下配置 hosts 并设置免密登录 作者:Grey 原文地址: 博客园:Linux 下配置 hosts 并设置免密登录 CSDN:Linux 下配置 hosts 并设置免密登录 说明 实现 ...
- linux下core文件调试方法
http://www.cnblogs.com/li-hao/archive/2011/09/25/2190278.html 在程序不寻常退出时,内核会在当前工作目录下生成一个core文件(是一个内存映 ...
随机推荐
- rbac models
class Permission(models.Model): """ 权限表 """ perm_name = models.CharFie ...
- [cb]扩展Hierarchy 添加二级菜单
目地 这篇博客教大家如何扩展Hierarchy 默认的Hierarchy 在Unity的Edior编辑器中,默认的Hierarchy如下 扩展的Hierarchy 扩展示例 MyInitOnLoad脚 ...
- PLSQL无法粘贴复制
有2个原因会导致这个问题发生: 一:快捷键设置不正确,按照网上的设置方法把复制粘贴的快捷键重新设置一下,然后重启plsql 二:远程桌面连接开着,关闭后试下(亲测有效)
- 写jQuery插件该注意的
写好jQuery插件,有一些注意的地方(持续添加). 支持UMD 现在前端开发讲究模块化,所以jQuery插件也最好能够兼顾模块化. 模块化模式大概有几种: AMD.CommonJs.UMD. AMD ...
- 【HTTP缓存】浏览器缓存理论知识
时间:2016-12-12 17:51:30 作者: zhongxia 零.前言 这里主要写的是理论,具体实践的比较少,后期写一个实践教程,内容基本都是从参考文章里面抄过来的[看完文章,顺便写做下笔记 ...
- android Application Component研究之Activity(二)
http://blog.csdn.net/windskier/article/details/7172710 本文为原创文章,欢迎转载!转载时请注明出处:http://blog.csdn.net/wi ...
- Js 不支持函数的重载
Js 不支持函数的重载,可以用相同的名字在同一作用区域,定义两个函数,而不会引起错误,但真正使用的是最后一个. Js 不会验证传递给函数的参数个数是否和函数定义的参数的个数相同,开发人员定义的函数都可 ...
- Thinkphp5.0整合个推例子
最近做一个后台发送消息推送到app(android和ios)的功能,该功能采用的是个推接口,基于php的,我用TP5来实现这个推送流程.先看官方demo吧.可以先参考官方给到的例子来看http://d ...
- usb-cam (3)摄像机标定文件-ORB-SLAM标定文件
http://www.luohanjie.com/2017-04-05/the-problem-of-calibration-data-in-orb-slam2.html ORB_SLAM2中标定数据 ...
- 浅谈JEECG多数据源的使用
首先,简单的介绍下什么是JEECG.JEECG(J2EECode Generation)是一款基于代码生成器的免费开源的快速开发平台,使用JEECG可以简单快速地开发出企业级的Web应用系统.JEEC ...