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

linux 环境收集core文件步骤

Linux环境下进程发生异常而挂掉,通常很难查找原因,但是一般Linux内核给我们提供的核心文件,记录了进程在崩溃时候的信息,在C语言类的大型项目中,有助于深入定位。其配置流程如下:
1 查看生成core文件开关是否开启 ulimit -a

core filesize(blocks,-c)0// 表明未开启data segsize(kbytes,-d)unlimited schedulingpriority(-e)0filesize(blocks,-f)unlimited pendingsignals(-i)2061196max lockedmemory(kbytes,-l)64max memorysize(kbytes,-m)unlimited openfiles(-n)1048576pipesize(512bytes,-p)8POSIX messagequeues(bytes,-q)819200real-timepriority(-r)0stacksize(kbytes,-s)8192cputime(seconds,-t)unlimited max userprocesses(-u)1048576virtualmemory(kbytes,-v)unlimited filelocks(-x)unlimited

2 ulimit -c [kbytes]可以设置系统允许生成的core文件大小;

ulimit-c unlimited// 不限制core文件的大小core filesize(blocks,-c)unlimited data segsize(kbytes,-d)unlimited schedulingpriority(-e)0filesize(blocks,-f)unlimited pendingsignals(-i)2061406max lockedmemory(kbytes,-l)64max memorysize(kbytes,-m)unlimited openfiles(-n)524288pipesize(512bytes,-p)8POSIX messagequeues(bytes,-q)819200real-timepriority(-r)0stacksize(kbytes,-s)8192cputime(seconds,-t)unlimited max userprocesses(-u)131072virtualmemory(kbytes,-v)unlimited filelocks(-x)unlimited

上述方式不是永久生效的,要使其永久生效,可以进行如下设置
1 vi /etc/security/limits.d/20-nproc.conf

*soft nproc unlimited root soft nproc unlimited postgres soft core unlimited postgres hard core unlimited

2 指定core文件的名字与生成路径
执行# vim /etc/sysctl.conf,进入编辑模式,加入下面两行

kernel.core_pattern=/var/core/core_%e_%p kernel.core_uses_pid=0注释:%e dump文件名%p 进程号

3 在/var目录下创建core目录,然后执行sysctl -p /etc/sysctl.conf命令,使修改生效。

4 使用调试器进行分析: 最后,你可以使用调试器(如GDB)来分析core文件以了解程序崩溃的原因。例如:

gdb/path/to/program/path/to/corefile

这将启动GDB并加载程序和core文件,你可以使用GDB命令来查看堆栈跟踪、变量值等信息,以找到问题的根本原因。

参考:[https://blog.csdn.net/luronggui/article/details/128728235]
(https://blog.csdn.net/luronggui/article/details/128728235)
https://mp.weixin.qq.com/s/_q4V1Q0HXLNZI3WpkWEV5w?poc_token=HL0y4GmjDLr5qJV3GNBcBqY2COsYXA6rfOcVJ2JS

http://www.gsyq.cn/news/1345244.html

相关文章:

  • 从Chirp信号到测距测速:手把手拆解FMCW雷达的数学原理(附Python仿真代码)
  • 九江黄金回收六店横评 长悦以透明定价锁定市民首选宝座 - 专业黄金回收
  • 从‘能用’到‘用好’:避开Python新手最易踩的5个坑(附代码调试技巧)
  • TranslucentTB终极指南:3步解决Windows任务栏透明化启动失败问题
  • 2026 拉卡拉个人 POS 刷卡机申请避坑指南:费率、押金、流量费和售后要看清 - 资讯速览
  • 量子机器学习与变分量子电路的原理与应用
  • 从STM32转战MSP430G2553:一个交通灯项目让我搞懂了两种单片机的差异
  • LeetCode 133:克隆图 | 哈希表存储原节点到新节点的映射
  • CircuitJS1 Desktop Mod:终极免费离线电路仿真工具完整指南
  • CANN/asc-devkit Crd2Idx函数
  • LeetCode 27 · 移除元素:双指针的两种打开方式
  • 如何在Linux系统上运行SOLIDWORKS:跨平台CAD解决方案
  • 如何一键管理数千首歌曲的同步歌词?智能字幕生成工具LRCGET深度解析
  • 免费开源乐谱识别神器:10分钟将纸质乐谱转为可编辑数字格式的终极指南
  • Amphenol ICC MSPEC2L0BC010 线束组件应用与兼容替代分析
  • 技术人的时间管理:高效利用每一天
  • 从零开始在Python项目中接入并使用Taotoken管理API调用
  • 抖音无水印视频下载神器:douyin-downloader开源工具完全指南
  • 如何用N_m3u8DL-CLI-SimpleG轻松下载加密M3U8视频:免费图形界面完整教程
  • 实战OpenAI API认证:深度解析API密钥与OAuth2.0的最佳实践方案
  • Windows 11 LTSC版终极解决方案:三分钟恢复完整Microsoft Store体验
  • 终极指南:如何在OBS Studio中免费使用VST插件实现专业级音频处理
  • 3个12位ADC+17个定时器+摄像头接口:STM32F207IGT6的电机控制与机器视觉资源
  • Airflow Maintenance Dags:7个关键维护工作流彻底解决Airflow运维难题
  • benchmark-ips深度解析:如何精准测量Ruby代码性能
  • 强力中文聊天语料库:一站式解决AI对话系统数据难题
  • 基于浏览器锁定的 CypherLoc 恐吓软件攻击机理与防御研究
  • 5分钟掌握WeKWS:打造智能设备的语音唤醒终极指南
  • 长沙写真推荐,按这4个标准选不会踩坑 - 麦克杰
  • 如何解决黑苹果USB端口识别问题:USBInjectAll内核扩展完整指南