Linux 查看corefile文件所在路径

本文介绍了如何通过查看 /proc/sys/kernel/core_pattern 文件来确定核心转储文件的命名规则。核心转储文件通常命名为 /data/corefile/core_%e_%t,其中 %e 代表导致核心转储的进程的可执行文件名,%t 则代表进程终止的时间。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

cat /proc/sys/kernel/core_pattern

/data/corefile/core_%e_%t

### 关于Linux CoreDump文件的生成、查看与分析 #### 一、CoreDump概述 当程序崩溃时,操作系统会自动生成一个名为CoreDump的核心转储文件。该文件包含了进程终止时刻内存映像以及有关寄存器状态的信息,对于开发者来说是非常重要的调试资源[^1]。 #### 二、CoreDump文件的生成方式 ##### ulimit命令控制Coredump大小限制 通过`ulimit -c unlimited`可以取消对核心转储文件大小的默认限制,从而允许生成完整的core dump文件。 ##### 使用sysctl调整内核参数 可以通过修改系统的内核参数来启用或禁用core dump功能。具体操作如下所示: ```bash sudo sysctl -w kernel.core_uses_pid=1 ``` 这行指令使得产生的core dump文件名后面附加有进程ID,有助于区分不同进程产生的core dump文件。 ##### 设置core_pattern定义输出路径及格式化名称 为了更灵活地管理core dump文件的位置和命名规则,可通过编辑`/proc/sys/kernel/core_pattern`文件实现定制化的保存方案。例如下面这条命令将会把所有的core dumps都放到指定目录下,并按照日期时间和PID重命名为易于识别的形式: ```bash sudo sh -c "echo '/data/coredump/core_$(date +%Y-%m-%d_%H-%M-%S)-%p.dump' > /proc/sys/kernel/core_pattern" ``` #### 三、CoreDump文件的存储位置 通常情况下,默认会在当前工作目录中创建core dump文件;但如果指定了特定模式,则可以根据设定好的路径进行存放。比如上面提到的例子就是将所有core dump统一放置到了/data/coredump这个文件夹里[^2]。 #### 四、CoreDump文件的分析方法 ##### GDB调试工具的应用 一旦获得了core dump文件后,就可以利用GNU Debugger (GDB) 来加载并检查这些数据。启动gdb的方式很简单,在终端输入以下命令即可开始调查问题所在之处: ```bash gdb ./program_name path_to_core_file ``` 进入交互环境之后便能执行各种诊断动作,如打印栈回溯(`bt`)、变量值查询等,进而帮助找出导致异常的具体原因[^4]。 ##### Objdump反汇编工具辅助理解机器码 除了借助高级别的调试手段外,有时候还需要深入到更低层次去探究程序行为。这时objdump就派上了用场——它能够解析ELF目标文件中的信息,包括但不限于函数地址表、符号表等内容。这对于那些想要了解底层细节的人来说非常有用。 ```bash objdump -S program_name | less ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值