corefile的设置与使用
一、简介
corefile是Linux下程序崩溃时生成的文件,可以用来分析程序崩溃的原因,因为它内部包含了程序崩溃时的堆栈信息。
二、corefile的设置
默认情况下,程序崩溃是不会生成corefile了,因为被操作系统限制。可以通过命令: ulimit -c 来查看,如果值为0则表示被限制了。
打开的方式有多种,最简单的是: ulimit -c unlimited 其中unlimited表示corefile文件的大小无限制,默认为0,所以不能生成corefile文件,你也可以指定其他的值。
这种设置方式虽然简单,但它却只是跟shell相关的,也就是说,如果我们关闭了当前shell再打开一个,则刚才的设置就失效了,这是很不方便的。
另外一种方式时修改文件:/etc/security/limits.conf。将其中的这一行 #* soft core 取消注释并将最后的0修改为unlimited或者你希望的值。
这个修改重新登录的时候才会生效,当然也有使其立即生效的方法:将ulimit -c unlimited 放入/etc/profile中,然后执行source /etc/profile即可立即生效。
默认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
http://www.unixmen.com/how-to-enable-core-dumps-in-rhel6/
三、corefile的使用
我们费了这么大的力气生成了这个corefile当然不是为了只是看看而已,我们需要从它里面的内容分析出程序崩溃的原因。
这就需要使用到我们的另一个工具:objdump、gdb。
objcopy –only-keep-debug execname debug.symbol
gdb --symbols=debug.symbol –core=corefile
(gdb)bt
这样就能看到程序崩溃时的堆栈了。
corefile的设置与使用的更多相关文章
- ubuntu下core file文件生成及调试
1.简介:corefile 是Linux下程序崩溃时生成的文件,可以用来分析程序崩溃的原因,因为它内部包含了程序崩溃时的堆栈信息. 2.corefile的设置 默认情况下,程序崩溃是不会生成coref ...
- 让外部的开发机直接访问Kubernetes群集内的服务!
让外部的开发机直接访问Kubernetes群集内的服务! 1.场景 容器化+K8s编排已经是现在进行时把网站的多个项目设计为云原生(Cloud Native)或老项改造为云原生可以获得诸多能力例如无云 ...
- Linux命令总结大全,包含所有linux命令
使用说明:此文档包含所有的Linux命令,只有你想不到的没有你看不到的,此文档共计10万余字,有8400多行,预计阅读时间差不多需要3个小时左右,所以要给大家说一说如何阅读此文档 为了方便大家阅读,我 ...
- corefile 设置
程序运行的过程中,可能会因为一些隐藏的bug导致崩溃,为了在出问题时,及时记录所在环境的情况,所以要设置core文件的产生.其实其本质就是把进程的内存保存到文件中去. 1.core文件的生成开关和大小 ...
- Core文件作用、设置及用法
http://blog.csdn.net/lanmolei814/article/details/45201693 ====================================== 1.C ...
- linux下生成core dump文件方法及设置
linux下生成core dump文件方法及设置 from:http://www.cppblog.com/kongque/archive/2011/03/07/141262.html core ...
- 设置core环境
void dummy_function (void){ unsigned char *ptr = 0x00; *ptr = 0x00;} int main (void){ dummy_function ...
- 如何设置、查看以及调试core文件
http://blog.csdn.net/xiaoxiaoniaoer1/article/details/7740820 1.core文件的生成开关和大小限制--------------------- ...
- Linux生成core文件、core文件路径设置
在Linux下产生并调试core文件 先看看我用的是个什么机器: $ uname -aLinux dev 2.4.21-9.30AXsmp #1 SMP Wed May 26 23:37:09 EDT ...
随机推荐
- SQL 基本的函数
select * from emp;
- 转:python webdriver API 之下载文件
webdriver 允许我们设置默认的文件下载路径.也就是说文件会自动下载并且存在设置的那个目录中.要想下载文件,首选要先确定你所要下载的文件的类型.要识别自动文件的下载类型可以使用 curl ,如图 ...
- C++builder 图像字符流的存储和加载
__fastcall TForm6::TForm6(TComponent* Owner) : TForm(Owner) { #if 1 //for debug AllocConsole(); Atta ...
- zjuoj 3600 Taxi Fare
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3600 Taxi Fare Time Limit: 2 Seconds ...
- Could not create the view: An unexpected exception was thrown.问题解决
Could not create the view: An unexpected exception was thrown.问题解决 今天打开Myeclipse10的时候,发现server窗口出现一堆 ...
- const C语言(转)
const在C语言中算是一个比较新的描述符,我们称之为常量修饰符,意即其所修饰的对象为常量(immutable). 我们来分情况看语法上它该如何被使用. 1.函数体内修饰局部变量.例:void fun ...
- [ubuntu] ubuntu13.04安装rabbitcvs管理svn
加入源 sudo add-apt-repository ppa:rabbitvcs/ppa 更新 sudo apt-get update 安装软件 sudo apt-get install rabbi ...
- zw版【转发·台湾nvp系列Delphi例程】HALCON HWindow Overlayer 1
zw版[转发·台湾nvp系列Delphi例程]HALCON HWindow Overlayer 1 ------------------------------------HALCON HWindow ...
- Mapreduce之序列化框架(转自http://blog.csdn.net/lastsweetop/article/details/9376495)
框架简介 MapReduce仅仅可以支持Writable做key,value吗?答案是否定的.事实上,一切类型都是支持的,只需满足一个小小的条件:每个类型是以二进制流的形式传输.为此Hadoop提供了 ...
- Java 入门基础
第零章 开始学习Java 1.Java基础最重要 Java学习中,Java的基础.Java面向对象是最关键的,而一些像框架技术等都是建立在基础之上东西. 多多处理问题,积累处理问题的能力. Java框 ...