(转)关于Linux核心转储文件 core dump
产生条件:特定的信号会引发进程创建一个核心转储文件并终止运行。
关于core文件更详细内容http://man7.org/linux/man-pages/man5/core.5.html
接下来我们说一些关于core文件常见的情况和问题。
1.core文件的生成开关和大小限制
使用ulimit -c filesize命令,可以限制core文件的大小(filesize的单位为kbyte)。如果生成的信息超过此大小,将会被裁剪,最终生成一个不完整的core文件。在调试此core文件的时候,gdb会提示错误。若ulimit -c unlimited,则表示core文件的大小不受限制。
如果想让修改永久生效,则需要修改配置文件,如 .bash_profile、/etc/profile或/etc/security/limits.conf。
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文件保存位置和文件名格式。(从Linux2.6版本才有,之前版本可能没有此文件)
可通过以下命令修改此文件:
echo "/corefile/core-%e-%p-%t" >/proc/sys/kernel/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 添加命令名
注意若你指定的文件夹不存在,则core文件不会生成。
3.core文件的查看
gdb [exec file] [core file]
如:
gdb ./test test.core
在进入gdb后, 用bt命令查看backtrace以检查发生程序运行到哪里, 来定位core文件->行.
GDB中键入where,也会看到程序崩溃时堆栈信息(当前函数之前的所有已调用函数的列表(包括当前函数),gdb只显示最近几个)
参考 http://blog.chinaunix.net/uid-21411227-id-1826911.html
http://www.nginx.cn/1521.html
http://www.cnblogs.com/xuxm2007/archive/2010/10/22/1858095.html
强制进程产生coredump,检测死锁以及进程快照 http://blog.chinaunix.net/uid-23629988-id-175809.html
---------------------
作者:二手码农
来源:CSDN
原文:https://blog.csdn.net/hu_jiacheng/article/details/40950471
版权声明:本文为博主原创文章,转载请附上博文链接!
转载于:https://www.cnblogs.com/heluan/p/10278831.html
(转)关于Linux核心转储文件 core dump相关推荐
- 信号的高级特性-核心转储文件
核心转储文件-core 产生核心转储文件的方式; ulimit -c unlimited //对生成的core文件的大小不做限制 sleep 30 ls -l core 失控进程
- Linux下如何生成core dump 文件(解决segment fault段错误的问题)
Linux下如何生成core dump 文件(解决segment fault段错误的问题) 参考文章: (1)Linux下如何生成core dump 文件(解决segment fault段错误的问题) ...
- Linux内存转储文件找不到?
Linux中的内存转储文件路径问题 确定保存路径为/var/core,文件名为core-%e-%p[var目录下有core] %c 转储文件的大小上限 %e 所dump的文件名 %g 所dump的进程 ...
- 核心转储文件的设置和查看
设置转储文件名 在/proc/sys/kernel/core_pattern文件中写入内容,%e表示可执行程序名,%t表示时间.默认的情况下生成的core文件名是core.这样如何和别的进程产生的co ...
- 使用Visual Studio 分析转储文件(dump文件)
1.打开windows任务管理器,找到崩溃的进程,右键=>创建转储文件 2.打开vs.文件=>打开=>文件.打开你刚才导出的文件: 上面的图是打开后的界面,有比较基础的信息统计.我们 ...
- Core Dump核心转储
核心转储(core dump),在汉语中有时戏称为吐核,是操作系统在进程收到某些信号而终止运行时,将此时进程地址空间的内容以及有关进程状态的其他信息写出的一个磁盘文件.这种信息往往用于调试. 概述 编 ...
- core dump 1
核心转储是进程意外终止时包含进程的地址空间(内存)的文件.核心转储可以按需生成(例如由调试器生成),也可以在终止时自动生成.核心转储由内核触发以响应程序崩溃, 并可能传递给辅助程序 (如systemd ...
- linux下gdb使用core文件调试程序,解决“段错误核心已转储“的问题
一.core文件介绍以及用途: 1.core文件是什么? core文件包含了程序运行时的内存状态.寄存器状态.堆栈指针.内存管理信息以及各个函数使用堆栈信息等等: 当程序运行过程中出现段错误(Segm ...
- 内存大对象dump linux_在 Linux 上创建并调试转储文件 | Linux 中国
了解如何处理转储文件将帮你找到应用中难以重现的 bug. • 来源:linux.cn • 作者:Stephan Avenwedde • 译者:Xingyu.Wang • (本文字数:5501,阅读时长 ...
最新文章
- 用自动阈值话处理SVM棋盘
- win1编辑java环境,在win7下配置java编译环境
- [css] style标签写在body前和body后的区别是什么?
- 如何检查列表是否为空?
- rac ogg to mysql_RAC环境下OGG的HA问题请教!
- jdk下载安装并配置环境
- MyBatis 的 4 个妙用,别再踩坑了!
- java安装证书文件_Java安装证书文件
- paip.JS的调试--DOM元素的属性与事件绑定
- vant制作首页的加载中和暂无数据
- 如何批量给 Word、Excel、PDF、PPT 文档设置文件打开密码和删除密码
- 创业怎么写商业计划书?
- 1 10000用计算机计算,2019新个税计算器 工资一万要交多少税
- 消费者心声:我手机的镜头已经够好了,什么时候给我防防水?
- TEX:文档的布局与组织
- The number of GET/POST parameters exceeded settings.DATA_UPLOAD_MAX_NUMBER_FIELDS. ERROR:django.secu
- upper_bound 和 lowwer_bound 用法
- 通过matlab对比不同调制方式下的球形译码误码率仿真,包括BPSK,QPSK,8PSK,4QAM以及16QAM
- python要安装文本编辑器吗_python安装后推荐的安装两款文本编辑器
- Python最长回文子串
热门文章
- WGS84经纬度坐标与WEB摩卡托坐标转换
- 破除Odoo 菜单栏提示 99+
- linux 压缩 解压zip 命令
- Solr在Weblogic中部署遇到的问题
- 2.什么是变量的数据类型
- 2014/12/05 随笔 2014-12-05 12:50 26人阅读 评论(0) 收藏...
- 将地址转换为链接的正则表达式(regex url href)
- PHP 项目中单独使用 Laravel Eloquent 查询语句来避免 SQL 注入
- J2Cache 中使用 Lettuce 替代 Jedis 管理 Redis 连接
- Npm 包版本知识总结