Linux中的核心转储文件是什么?它提供什么信息?

linux中的核心转储文件是什么?它提供了什么信息?
最佳答案
它基本上是使用中的进程地址空间(从包含所有虚拟内存区域的mm_struct结构)以及其崩溃时的任何其他支持信息* a.

例如,假设您尝试取消引用NULL指针并接收SEGV信号,导致退出.作为该过程的一部分,操作系统尝试将您的信息写入文件以进行以后的验证分析.

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

* a:在内核版本2.6.38中,fs/exec.c/do_coredump()是负责核心转储的一个,您可以看到它通过了信号号码,退出代码和寄存器.它反过来将信号编号和寄存器传递给二进制格式(ELF,a.out等)转储器.

ELF转储器为fs/binfmt_elf.c/elf_core_dump(),您可以看到它在fs/binfmt_elf.c/fill_note_info()中输出非基于内存的信息,如线程详细信息,然后返回输出进程空间.

转载注明原文:Linux中的核心转储文件是什么?它提供什么信息? - 代码日志