当前位置: 首页 > news >正文

【Linux 18】核心转储

文章目录

  • 🌈 一、什么是核心转储
  • 🌈 二、如何启动核心转储
  • 🌈 三、为什么有核心转储

🌈 一、什么是核心转储

  • 核心转储 (Core Dump):当一个进程异常终止时,会在触发进程崩溃的目录下生成一个以进程 pid 命名的 core 文件。
    • 该文件的作用是将崩溃的进程在崩溃时的核心上下文数据存储到磁盘中。

在这里插入图片描述

🌈 二、如何启动核心转储

  • 一个进程允许产生多大的 core 文件取决于进程的 Resource Limit(这个信息保存在 PCB 中)。
  • 默认是不允许产生 core 文件的,即默认不允许发生核心转储,因为 core 文件中可能包含用户密码等敏感信息,不安全。
    • 可以在命令行中输入 ulimit -a 指令查看是否看起核心转储功能,如果 core file size 为 0 则说明未开启。

在这里插入图片描述

  • 在开发调试阶段可以用 ulimit -c core文件大小 命令改变这个限制,允许产生 core 文件。
    • 例:ulimit -c 1024,将 core 文件大小设置为 1024,从而开启核心转储功能。

在这里插入图片描述

触发核心转储实例

  • 编写一个具有除零错误的代码触发异常终止,从而引起核心转储。
#include <iostream>
#include <unistd.h>using std::cout;
using std::endl;int main()
{cout << "当前进程 pid 为: " << getpid() << endl;// 触发异常终止int a = 10;a /= 0;return 0;
}

在这里插入图片描述

🌈 三、为什么有核心转储

  • 前面也说过了,core 文件中存储的是进程在崩溃时产生的上下文数据。那么 core 文件存在的主要目的就是为了 debug
http://www.lryc.cn/news/421779.html

相关文章:

  • 远程传输文件至服务器—spc 传输
  • HarmonyOS.FA开发流程
  • 三级_网络技术_21_无线局域网设备安装与调试
  • 机械学习—零基础学习日志(项目实践01)
  • SpringBoot排除默认日志框架
  • 质量管理理论(至简)
  • kaggle中访问本地上传的图片(找到图片地址)
  • ChatGPT到底是什么?它能做到什么?我们怎么才能使用到
  • 浦科特M6S固态硬盘数据丢失与恢复:全方位指南
  • gdb: 编译,lzma,configure: error: missing liblzma for --with-lzma
  • LInux - 一文了解 ssh端口敲门knock
  • Java面试篇(线程池相关专题)
  • git推送错误-->远程分支比本地的分支更新,无法直接推送
  • 【三维重建】SpotlessSplats:去除瞬态干扰物的三维高斯喷溅(3DGS)
  • 28. 找出字符串中第一个匹配项的下标【 力扣(LeetCode) 】
  • 邀请函 I 松下信息和望繁信科技邀您参加「数智时代下大数据应用的“道”与“术”」闭门会议
  • Node.js中的fs.watchFile与fs.unwatchFile:文件监控与取消监控
  • Hadoop大集群配置文档-粗略版-3万字长文 (包括hive,zookeeper,hbase,flume等中间件和mysql等)
  • 原生html+js播放flv直播视频流【vue等皆可用】
  • 初学java第一天:写一下熟悉的猜数字小游戏
  • 【C++】如何判断类型
  • 让一切发生皆有利于我,在人生的长河中,我们常常面临诸多的不确定性和变化
  • 腾讯云AI代码助手:智能AI代码助手 ,新一代的高效代码开发辅助工具
  • C#:索引器 集合初始化器 事件访问器 枚举器 迭代器
  • css伪类选择器、盒子模型等
  • opencv-python图像增强三:图像清晰度增强
  • 第130天:内网安全-横向移动PTH哈希PTT 票据PTK密匙Kerberos密码喷射
  • SB3045LFCT-ASEMI无人机专用SB3045LFCT
  • RPA财务机器人是什么,RPA的具体应用场景有哪些?| 实在RPA研究
  • 滑动窗口 | Java | (hot100) 力扣 3