定制core dump 文件的文件名
来源:互联网 发布:人工智能报告2000字 编辑:程序博客网 时间:2024/05/17 21:54
Linux使用笔记: 定制core dump文件的文件名
在开发过程中,当一个Linux程序异常退出时,我们可以通过core文件来分析它异常的详细原因。缺省情况下,Linux在程序异常时不产生core文件,要想让程序异常退出时产生core dump文件,需要使用ulimit命令更改coredump的设置:
ulimit -c unlimited
上面的命令表示在程序异常时产生core dump文件,并且不对core dump文件的大小进行限制。
上述设置只是使能了core dump功能,缺省情况下,内核在coredump时所产生的core文件放在与该程序相同的目录中,并且文件名固定为core。很显然,如果有多个程序产生core文件,或者同一个程序多次崩溃,就会重复覆盖同一个core文件。
我们通过修改kernel的参数,可以指定内核所生成的coredump文件的文件名。例如,Easwy使用下面的命令使kernel生成名字为core.filename.pid格式的core dump文件:
echo 'core.%e.%p' > /proc/sys/kernel/core_pattern
这样配置后,产生的core文件中将带有崩溃的程序名、以及它的进程ID。上面的%e和%p会被替换成程序文件名以及进程ID。
可以在core_pattern模板中使用变量还很多,见下面的列表:
- %% 单个%字符
- %p 所dump进程的进程ID
- %u 所dump进程的实际用户ID
- %g 所dump进程的实际组ID
- %s 导致本次core dump的信号
- %t core dump的时间 (由1970年1月1日计起的秒数)
- %h 主机名
- %e 程序文件名
如果在上述文件名中包含目录分隔符”/“,那么所生成的core文件将会被放到指定的目录中。
需要说明的是,在内核中还有一个与coredump相关的设置,就是/proc/sys/kernel/core_uses_pid。如果这个文件的内容被配置成1,那么即使core_pattern中没有设置%p,最后生成的core dump文件名仍会加上进程ID。
对所生成的core dump进程分析,需要使用调试工具,例如GDB等。可以参见Easwy的其它文章。
原创文章,请阅读页脚的许可方式,转载请注明:转载自易水博客 [http://easwy.com/blog/ ]
本文链接地址: http://easwy.com/blog/archives/customize-filename-of-core-dump/
root权限不能vim编辑,echo进去,
/proc文件系统的内容是kernel映射出来的内存内容,并不在真实文件系统上
- 定制core dump 文件的文件名
- 定制core dump文件的文件名
- Linux使用笔记: 定制core dump文件的文件名
- 定制core文件的文件名与目录
- 设置 core dump文件名的格式
- linux下core dump文件的使用
- 设置core dump文件生成的方法
- 调试 core dump 文件
- gdb core dump文件
- Core Dump文件
- core dump文件
- core dump文件
- 再聊用strace来定位没有core文件的core dump
- WebSphere7.0生成core文件和dump文件的方法
- core dump的意义
- core dump 的处理
- 嵌入式 产生core dump文件
- Linux 调试 core dump文件
- 在Android 项目时的防止Memory leak 要注意的事项
- windows azure 试用感受5
- 关于C语言中的malloc和free函数的用法
- WAS部署war包报错:发生 IWAE0022E Exception异常
- BellmanFord算法框架
- 定制core dump 文件的文件名
- Oracle数据库的三种标准的备份方法
- Directx在visual studio2010中的配置
- 英国手机市场,Windows Phone销量超塞班
- myeclipse安装svn插件的多种方式
- 合并排序
- 关于Class类的成员函数与Java反射机制,坦言Synchronize的本质
- 一个莫名其妙的问题
- JWplayer