问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

linux core 文件 怎么分析

发布网友 发布时间:2022-05-04 22:43

我来回答

1个回答

热心网友 时间:2022-06-26 17:28

Core,又称之为Core Dump文件,是Unix/Linux操作系统的一种机制,对于线上服务而言,Core令人闻之色变,因为出Core的过程意味着服务暂时不能正常响应,需要恢复,并且随着吐Core进程的内存空间越大,此过程可能持续很长一段时间(例如当进程占用60G+以上内存时,完整Core文件需要15分钟才能完全写到磁盘上),这期间产生的流量损失,不可估量。
凡事皆有两面性,OS在出Core的同时,虽然会终止掉当前进程,但是也会保留下第一手的现场数据,OS仿佛是一架被按下快门的相机,而照片就是产出的Core文件。里面含有当进程被终止时内存、CPU寄存器等信息,可以供后续开发人员进行调试。

关于Core产生的原因很多,比如过去一些Unix的版本不支持现代Linux上这种GDB直接附着到进程上进行调试的机制,需要先向进程发送终止信号,然后用工具阅读core文件。在Linux上,我们就可以使用kill向一个指定的进程发送信号或者使用gcore命令来使其主动出Core并退出。如果从浅层次的原因上来讲,出Core意味着当前进程存在BUG,需要程序员修复。从深层次的原因上讲,是当前进程触犯了某些OS层级的保护机制,*迫OS向当前进程发送诸如SIGSEGV(即signal 11)之类的信号, 例如访问空指针或数组越界出Core,实际上是触犯了OS的内存管理,访问了非当前进程的内存空间,OS需要通过出Core来进行警示,这就好像一个人身体内存在病毒,免疫系统就会通过发热来警示,并导致人体发烧是一个道理(有意思的是,并不是每次数组越界都会出Core,这和OS的内存管理中虚拟页面分配大小和边界有关,即使不出Core,也很有可能读到脏数据,引起后续程序行为紊乱,这是一种很难追查的BUG)。
说了这些,似乎感觉Core很强势,让人感觉缺乏控制力,其实不然。控制Core产生的行为和方式,有两个途径:
1.修改/proc/sys/kernel/core_pattern文件,此文件用于控制Core文件产生的文件名,默认情况下,此文件内容只有一行内容:“core”,此文件支持定制,一般使用%配合不同的字符,这里罗列几种:
%p 出Core进程的PID
%u 出Core进程的UID
%s 造成Core的signal号
%t 出Core的时间,从1970-01-0100:00:00开始的秒数
%e 出Core进程对应的可执行文件名

2.Ulimit –C命令,此命令可以显示当前OS对于Core文件大小的*,如果为0,则表示不允许产生Core文件。如果想进行修改,可以使用:
Ulimit –cn
其中n为数字,表示允许Core文件体积的最大值,单位为Kb,如果想设为无限大,可以执行:
Ulimit -cunlimited
产生了Core文件之后,就是如何查看Core文件,并确定问题所在,进行修复。为此,我们不妨先来看看Core文件的格式,多了解一些Core文件。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
安徽徽商城有限公司公司简介 安徽省徽商集团新能源股份有限公司基本情况 安徽省徽商集团有限公司经营理念 2019哈尔滨煤气费怎么有税? 快手删除的作品如何恢复 体育理念体育理念 有关体育的格言和理念 什么是体育理念 万里挑一算彩礼还是见面礼 绿萝扦插多少天后发芽 下岗工人岁数大了、找不到工作,但是还没到退休年龄,怎么办呢? 三十多岁没工作了怎么办,重新学技术还来得及吗? 政协委员称延时退休要渐进式推进,关于延迟退休,你最关心的是什么? 我想赚钱一没技术二是年龄有点大没人要,在家干着急啊,这个社会难道容不下我了! 婚纱影楼开业主持词,刚开业 求描写礼服或婚纱的段落,长一点的,跪求,不要句子,要段落。。。 全国计算机二级ACCESS考试时间? 买二手车银行给车的贷款额度就是这部车的价钱吗? 白色婚纱的介绍 我45岁下岗职工送美团外卖60岁能退休吗? 深圳一60岁大爷拿放大镜看单号送外卖,看到这一幕你有什么感触? 白色婚纱代表了什么及其由来 白色婚纱怎么形容 天气预报软件怎么直接把天气情况显示在手机桌面上? 怎样把天气预报设置在手机桌面 小脆皮雪糕在家怎么做? 榴莲脆皮冰棒的家常做法大全怎么做好吃视 超级简单就能做出健康又好吃的冰棒关键还是个有故事的 白杨礼赞这篇短文写了什么?请用一句话概括 农村的穷光棍大龄剩男该怎么办啊? linux有多个core文件,怎么区分它们属于哪个进程 LINUX core怎么设置 linux下的core文件是怎么生成的 谁能告诉我linux下出core,core究竟是什么? linux 为什么没有产生core 文件 医生有慢性胆囊炎跟胆结石怎样治疗 胆结石,慢性胆囊炎 慢性胆囊炎和胆石症的治疗 慢性胆囊炎、胆石症病人的饮食要注意什么? 慢性胆囊炎与胆囊结石有什么药最安全有效 得胆结石和胆囊炎怎么办? 胆石症与胆囊炎的分类是什么? 如何药物治疗胆结石,慢性胆囊炎 慢性胆囊炎胆结石的治疗方法 我得了慢性胆囊炎和胆结石,先治疗哪个啊 慢性胆囊炎合并胆结石怎么办 慢性胆囊炎加胆结石,保胆取石还是切除胆囊好?利弊有那些? 什么是慢性结石性胆囊炎? 多发性胆囊结石并慢性胆囊炎怎么办/能治 胆囊炎和胆结石它们有什么密切的关系吗?