Linux core文件被截断问题的解决办法

在Linux机器上发生了core文件被截断的现象,找到了解决办法。
 
现象
通过gdb打开core,但看不到core的内容,信息如下:
$ gdb XXX core.XXX
GNU gdb (GDB) Red Hat Enterprise Linux ( 7.0.1-32.el5)
Copyright (C) 2009 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-redhat-linux-gnu".
For bug reporting instruction
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux 中,当一个进程遇到致命错误时,它会生成一个 core 文件,也称为核心转储文件。这个文件包含了进程的内存映像、寄存器状态等信息,可以用于分析进程崩溃的原因。 下面是一些常见的分析 core 文件的方法: 1. gdb 调试器 gdb 是一个强大的命令行调试器,可以用来分析 core 文件。简单的做法是通过命令行运行 `gdb <可执行文件> <core 文件>`,然后使用 gdb 的命令来查看内存、寄存器、堆栈等信息。 2. objdump 工具 objdump 工具可以用来分析 ELF 格式的可执行文件core 文件。使用 `objdump -f <core 文件>` 命令可以查看 core 文件的基本信息,使用 `objdump -s <core 文件>` 命令可以查看 core 文件的内存映像。 3. readelf 工具 readelf 工具也可以用来分析 ELF 格式的可执行文件core 文件。使用 `readelf -a <core 文件>` 命令可以查看 core 文件的基本信息,使用 `readelf -x <section> <core 文件>` 命令可以查看特定节的内容。 4. addr2line 工具 addr2line 工具可以将内存地址转换为源代码行号。使用 `addr2line -e <可执行文件> <内存地址>` 命令可以查看特定内存地址对应的源代码行号。 以上是一些常见的分析 core 文件的方法,但是对于复杂的程序崩溃,仍然需要耐心分析。同时,还可以使用其他工具和技术,如 Valgrind、strace、perf 等,来进一步分析进程崩溃的原因。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值