我对core文件资料的收集整理
来源:互联网 发布:sql语句多表查询count 编辑:程序博客网 时间:2024/06/05 05:29
//---------------------------------------------------------------
1. core文件的简单介绍
//---------------------------------------------------------------
在一个程序崩溃时,它一般会在指定目录下生成一个core文件。core文件仅仅是一个内存映象(同时加上调试信息),主要是用来调试的。
//---------------------------------------------------------------
2. 开启或关闭core文件的生成
//---------------------------------------------------------------
用以下命令来阻止系统生成core文件:
ulimit -c 0
下面的命令可以检查生成core文件的选项是否打开:
ulimit -a
该命令将显示所有的用户定制,其中选项-a代表“all”。
也可以修改系统文件来调整core选项
在/etc/profile通常会有这样一句话来禁止产生core文件,通常这种设置是合理的:
# No core files by default
ulimit -S -c 0 > /dev/null 2>&1
但是在开发过程中有时为了调试问题,还是需要在特定的用户环境下打开core文件产生的设置
在用户的~/.bash_profile里加上ulimit -c unlimited来让特定的用户可以产生core文件
如果ulimit -c 0 则也是禁止产生core文件,而ulimit -c 1024则限制产生的core文件的大小不能超过1024kb
//---------------------------------------------------------------
3. 设置Core Dump的核心转储文件目录和命名规则
//---------------------------------------------------------------
/proc/sys/kernel/core_uses_pid可以控制产生的core文件的文件名中是否添加pid作为扩展,如果添加则文件内容为1,否则为0
proc/sys/kernel/core_pattern可以设置格式化的core文件保存位置或文件名,比如原来文件内容是core-%e
可以这样修改:
echo "/corefile/core-%e-%p-%t" > core_pattern
将会控制所产生的core文件会存放到/corefile目录下,产生的文件名为core-命令名-pid-时间戳
以下是参数列表:
%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 添加命令名
//---------------------------------------------------------------
4. 使用core文件
//---------------------------------------------------------------
在core文件所在目录下键入:
gdb -c core
它会启动GNU的调试器,来调试core文件,并且会显示生成此core文件的程序名,中止此程序的信号等等
如果你已经知道是由什么程序生成此core文件的,比如MyServer崩溃了生成core.12345,那么用此指令调试:
gdb -c core MyServer
以下怎么办就该去学习gdb的使用了
//---------------------------------------------------------------
5. 一个小方法来测试产生core文件
//---------------------------------------------------------------
直接输入指令:
kill -s SIGSEGV $$
ps:有什么不对的或补充的,欢迎mail或留言
- 我对core文件资料的收集整理
- 对.NET资源文件的资料收集
- 我收集和整理的 SharePoint 2013 学习资料
- 我收集、整理的一些项管考试的一些资料,欢迎考友们下载!
- 我收集、整理的一些系分考试的一些资料,欢迎考友们下载!
- DNS收集的相关资料整理
- 收集整理的一些.NET学习资料
- 收集整理Oracle权限的资料
- 资料收集整理
- 琐碎资料收集整理
- 收集资料整理(1)
- 监控资料收集整理
- 谈一下自己收集资料和整理资料的经验
- 对依赖注入机制的资料收集
- 对LINQ的一些资料收集
- 我收集的批处理学习资料
- 关于我收集的嵌入式资料
- 关于我收集的嵌入式资料
- Java程序员的存储过程
- Outlook Express中的.dbx文件揭秘
- [转]今天我拒绝了一个应聘的女程序员
- Linux学习历程
- 运用JMS构建J2EE异构系统
- 我对core文件资料的收集整理
- 基于HHARM9-EDU的TCP/IP(UDP)协议的实现
- [收录]基于COM思想实现AEEINTERFACE
- [收录]深入BREW抽象接口机制
- The mechanism and implementation of detecting memory leak
- [收录]dynamic app(module) access oem layer的机制介
- [收录]深入BREW消息处理机制
- 什么决定我们浏览器的选择--我看Firefox和Maxthon (3)
- 常用英语学习网址收集-----------各英语网址: