什么是Linux中的核心转储文件?它提供了哪些信息?[英] What is a core dump file in Linux? What information does it provide?

本文是小编为大家收集整理的关于什么是Linux中的核心转储文件?它提供了哪些信息?的处理方法,想解了什么是Linux中的核心转储文件?它提供了哪些信息?的问题怎么解决?什么是Linux中的核心转储文件?它提供了哪些信息?问题的解决办法?那么可以参考本文帮助大家快速定位并解决问题。

问题描述

linux中的核心转储文件是什么?它提供了哪些信息?

推荐答案

基本上是使用中的进程地址空间(来自包含所有虚拟内存区域的mm_struct结构),以及任何其他支持信息 * a ,它崩溃时.

例如,假设您尝试解密空指针并接收SEGV信号,导致您退出.作为该过程的一部分,操作系统试图将您的信息写入文件以供稍后的验尸分析.

您可以将核心文件与可执行文件一起加载到调试器中(例如,用于符号和其他调试信息)并拨到周围的尝试并发现导致问题.


* a :在内核版本2.6.38中, fs/exec.c/do_coredump() 是负责核心转储的人,您可以看到它传递了信号号,退出代码和寄存器.它又通过信号编号和寄存器到特定于二进制格式的(ELF,A.OUT等)DUMPER.

elf dumper是 fs/binfmt_elf.c/elf_core_dump() 您可以看到它输出基于非内存的信息,如线程细节,在 fs/binfmt_elf.c/fill_note_info() ,然后返回输出过程空间.

其他推荐答案

如果程序异常终止,应记录异常终止点的程序状态以进行进一步分析.此状态录制在核心转储文件中.

在多个用户和多任务环境中,访问不属于您的资源是不可接受的.如果进程 - 试图访问属于Process-B的系统资源,它是违规的.在此,操作系统杀死过程并将进程状态存储到文件中.此文件称为核心转储文件.核心转储有很多原因.我刚刚解释了核心转储的可能性之一.通常它是因为sigsegv(分段故障)和sigbus(总线错误).

核心转储文件包含异常终止发生的详细信息,进程堆栈,符号表等.

有许多工具可用于调试CoreDumps. GDB. DBX. objdump. MDB

编译器选项会使调试过程更容易.虽然编译这些标志(通常)将导致在对象文件的符号表中留下额外信息,这有助于调试器(GDB/DBX)以轻松访问符号(符号引用).

本文地址:https://www.itbaoku.cn/post/358997.html