我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Linux下core文件的使用方法详解

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Linux下core文件的使用方法详解

前言

有时候程序会异常退出而不带任何日志,此时就可以使用 code 文件进行分析,它会记录程序运行的内存,寄存器,堆栈指针等信息

什么是core文件

通常在 linux 下遇到程序异常退出或者中止,我们都会使用 core 文件进行分析,其中包含了程序运行时的内存,寄存器,堆栈指针等信息,格式为 ELF ,可以理解是程序工作当前状态转储成一个文件,通过工具分析这个文件,我们可以定位到程序异常退出或者终止时相应的堆栈调用等信息,为解决问题提供帮助。

使用core文件调试

生成方法

查看当前 core 文件的状态


$ ulimit -a
...
-c: core file size (blocks)   0 # 关闭状态
...

打开生成开关


ulimit -c unlimited
ulimit -a
...
-c: core file size (blocks)   unlimited
...

对 core 文件的大小进行限制,单位为 blocks ,一般 1 block=512 bytes ,设置太小可能导致不会生成文件


$ ulimit -c 1024
$ ulimit -a
...
-c: core file size (blocks)   1024
...

关闭生成开关


ulimit -c 0
ulimit -a
...
-c: core file size (blocks)   0
...

上面对 core 文件的操作仅对当前生效,若需要永久生效,则要将相应操作写入 /etc/profile

生成路径

core 文件默认生成在程序的工作目录,可以对生成路径进行设置,需要保证对对应目录有足够空间并具有写权限


echo /MyCoreDumpDir/core.%e.%p > /proc/sys/kernel/core_pattern

其中命名使用的参数列表


%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 # 添加命令名

/proc/sys/kernel/core_uses_pid 这个文件的值若为1,则无论时候配置 %p ,最后生成的 core 文件都会添加 pid

调试方法

可以使用 gdb 对 core 文件进行调试,编译是需要带上 -g 选项


$ gdb a.out
...
(gdb) core-file core
...
(gdb) bt 
...

如需要在 PC 上调试嵌入式设备产生的 core 文件,则需要选取相应平台的 gdb 工具,并在进入 gdb 后设置符号文件的位置


$ xxx-xxx-gdb a.out
...
(gdb) solib-search-path xxx.so:xxx.so
...
(gdb) core-file core
...
(gdb) bt
...

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对我们的支持。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Linux下core文件的使用方法详解

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Linux下core文件的使用方法详解

前言 有时候程序会异常退出而不带任何日志,此时就可以使用 code 文件进行分析,它会记录程序运行的内存,寄存器,堆栈指针等信息 什么是core文件通常在 linux 下遇到程序异常退出或者中止,我们都会使用 core 文件进行分析
2022-06-04

Linux下如何使用gdb调试core文件

1.core文件 当程序运行过程中出现Segmentation fault (core dumped)错误时,程序停止运行,并产生core文件。core文件是程序运行状态的内存映象。使用gdb调试core文件,可以帮助我们快速定位程序出现段
2022-06-03

linux下dd使用方法详解

本篇内容介绍了“linux下dd使用方法详解”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1. 命令简介dd 的主要选项:指定数字的地方若以
2023-06-13

Linux系统core文件的具体使用方法是什么

Linux系统core文件的具体使用方法是什么,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。 当程序运行的过程中异常终止或崩溃,操作系统会将程序当时的内存状态记录下来,保存
2023-06-28

Linux 下解压 rar 文件的方法

网上下载rar 压缩文件的使用,在linux在我们需要对其进行解压缩,这个时候,我们需要安装 rar相关的文件,来进行解压缩。 1. 下载 我们进入rarlab网站,进行下载 rar for linux x64 2. 使用 tar 命令 解
2022-06-04

使用FileZilla从Linux系统下载文件的方法

需求:将linux系统的的某个文件夹(里面包含文件夹和文件)下载到我Windows系统某个文件夹里 之前我使用xshell下载,但是通过 rz :上传sz:下载 命令中的sz命令,下载失败。 下载 code文件到本地 以下是code
2022-06-04

Linux下文件的压缩和解压方法

本篇内容介绍了“Linux下文件的压缩和解压方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!gzip功能说明:解压文件。语  法:gzip
2023-06-12

.gitignore文件作用及使用方法详解

这篇文章主要为大家介绍了.gitignore文件作用及使用方法详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
2023-03-06

通过.net core调用so文件的方法

本文探讨调用.NETCore中的SO(共享对象)文件的方法。它介绍了安装NuGet包、加载SO文件和调用其函数的步骤。示例演示了如何从C共享库中调用函数。还提供了关于跨平台支持、处理调用错误和其他注意事项的见解。本文旨在帮助开发者有效地在.NETCore应用程序中集成外部C代码。
通过.net core调用so文件的方法
2024-04-02

详解Linux下调试器GDB的基本使用方法

目录一、概述二、gdb调试2.1、设置断点2.1.1、断点commands高级功能2.2、运行2.3、显示栈帧2.4、显示变量2.5、显示寄存器2.6、单步执行2.7、继续执行2.8、监视点2.9、改变变量的值2.10、生成内核转储文件2.
2022-06-03

Linux下/var/run/目录下的pid文件详解及pid文件作用

先给大家介绍下linux下/var/run/目录下的pid文件,具体详解如下所示: linux系统中/var/run/目录下的*.pid文件是一个文本文件,其内容只有一行,即某个进程的PID。.pid文件的作用是防止进程启动多个副本,只有获
2022-06-04

Linux lnmp下无法使用mail发邮件的解决方法

这篇文章主要介绍“Linux lnmp下无法使用mail发邮件的解决方法”,在日常操作中,相信很多人在Linux lnmp下无法使用mail发邮件的解决方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Lin
2023-06-13

asp.net core多文件分块同时上传组件使用详解

ASP.NETCore的多文件分块上传组件可实现大文件分段上传,降低内存消耗和提高速度。该组件使用IFormFileCollection接口访问上传文件,并通过UploadFeature服务处理分块。客户端需使用支持分块上传的库,如jQuery文件上传插件。分块上传优点包括提高速度、降低内存消耗和增强容错性,但依赖客户端库和配置复杂性是局限性。
asp.net core多文件分块同时上传组件使用详解
2024-04-02

linux下怎么读取使用iso镜像文件的方法

本篇内容主要讲解“linux下怎么读取使用iso镜像文件的方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“linux下怎么读取使用iso镜像文件的方法”吧!如果拷贝到本地,可以使用mount
2023-06-10

nvm的下载,安装与使用方法图文详解

这篇文章主要介绍了nvm的下载,安装与使用方法,详细介绍了nvm的功能、下载与安装方法,常见命令以及相关问题解决方法,需要的朋友可以参考下
2023-05-14

Linux中awk的使用方法详解

在学习awk之前我们应该都学过sed,grep,tr,cut等等命令,这些命令都是为了方便我们对linux下文本和数据的处理,但是我们会发现很多时候这些命令并不能一下子就完全解决我们的需求,很多时候我们都需要使用管道符结合这些命令来使用,今
2022-06-04

Linux下.tar.xz文件的解压教程详解

前言 对于xz这个压缩相信很多人陌生,但xz是绝大数linux默认就带的一个压缩工具,xz格式比7z还要小。 最近在下载某个源码包的时候遇到的这种压缩格式,乘此机会分享一下xz的压缩与解压方法。 安装 如果系统没有xz命令,需要进行安装,安
2022-06-04

编程热搜

目录