核心转储

编辑
本词条由“匿名用户” 建档。

核心转储,由工作的记录状态的存储器a的计算机程序在特定的时间,一般当程序崩溃或否则异常终止。实际上,通常会同时转储程序状态的其他关键部分,包括处理器寄存器,可能包括程序计数器和堆栈指针,内存管理信息以及其他处理器和操作系统标志和信息。一个快照转储(或快照转储)是由所请求的内存转储计算机操作员或由正在运行的程序,在此之后,程序可以继续。核心转储通常用于协助诊断和调试计算机程序中的错误。 在许多操作系...

核心转储

编辑

核心转储,由工作的记录状态的存储器a的计算机程序在特定的时间,一般当程序崩溃或否则异常终止。实际上,通常会同时转储程序状态的其他关键部分,包括处理器寄存器,可能包括程序计数器和堆栈指针,内存管理信息以及其他处理器和操作系统标志和信息。一个快照转储(或快照转储)是由所请求的内存转储计算机操作员或由正在运行的程序,在此之后,程序可以继续。核心转储通常用于协助诊断和调试计算机程序中的错误

在许多操作系统上,程序中的致命异常会自动触发核心转储。通过扩展,短语“转储核心”在许多情况下已经意味着任何致命错误,无论程序内存记录是否存在。

核心转储

核心转储的使用

编辑

核心转储可以在多种情况下充当有用的调试辅助工具。在早期的独立或批处理系统上,核心转储允许用户调试程序,而无需独占(非常昂贵的)计算工具进行调试。与使用前面板开关和指示进行调试相比,打印输出也可能更方便。

在共享计算机上,无论是分时共享,批处理还是服务器系统、核心转储都可以对操作系统进行脱机调试,以便系统可以立即恢复运行。

核心转储允许用户保存崩溃以供以后进行或脱机分析,或与其他崩溃进行比较。对于嵌入式计算机,在计算机本身上支持调试可能不切实际,因此转储分析可能在另一台计算机上进行。某些操作系统(例如Unix的早期版本)不支持将调试器附加到正在运行的进程,因此,必须有核心转储才能在进程的内存内容上运行调试器。

核心转储可用于捕获在动态内存分配过程中释放的数据,因此可用于从不再运行的程序中检索信息。在没有交互式调试器的情况下,刻苦的程序员可以使用核心转储从直接检查中确定错误。

核心转储的分析

编辑

核心转储表示转储进程地址空间中转储区域的完整内容。根据操作系统的不同,转储可能包含很少或没有数据结构来帮助解释内存区域。在这些系统中,成功的解释要求试图解释转储的程序或用户理解程序的内存使用结构。

调试器可以使用符号表(如果有的话)来帮助程序员解释转储,以符号方式识别变量并显示源代码。如果符号表不可用,则可以对转储进行较少的解释,但仍可能有足够的可能性来确定问题的原因。也有称为转储分析器的专用工具来分析转储。GNU binutils的objdump是一种可在许多操作系统上使用的流行工具。

在类似Unix的现代操作系统上,管理员和程序员可以使用GNU Binutils二进制文件描述符库(BFD)以及使用该库的GNU调试器(gdb)和objdump读取核心转储文件。该库将提供核心转储中内存区域中给定地址的原始数据;它对那个内存区域中的变量或数据结构一无所知,因此使用该库读取核心转储的应用程序将必须确定变量的地址并确定数据结构本身的布局,例如通过使用符号表用于正在调试的程序。

来自Linux系统的崩溃转储的分析人员可以使用kdump或Linux内核崩溃转储(LKCD)。

核心转储可以将进程的上下文(状态)保存为给定状态,以便稍后返回。通过在处理器之间转移内核,有时通过内核转储文件本身,可以使系统具有高可用性。

核心也可以通过网络转储到远程主机上(存在安全风险)。

核心转储文件

编辑

格式化

在较早和较简单的操作系统中,每个进程都有一个连续的地址空间,因此转储文件有时只是一个具有字节、数字、字符或单词的序列的文件。在其他早期机器上,转储文件包含离散记录,每个记录包含一个存储地址和相关内容。在早期的计算机上,转储通常是由独立的转储程序而不是由应用程序或操作系统编写的。

在IBM System / 360上,标准操作系统编写了格式化的ABEND和SNAP转储,并将地址、寄存器、存储内容等都转换为可打印形式。后来的发行版增加了写入未格式化的转储的功能,当时称为核心映像转储。

在现代操作系统中,进程地址空间可能存在间隙,并与其他进程或文件共享页面,因此使用了更为详尽的表示形式。它们还可能包含有关转储时程序状态的其他信息。

在类似Unix的系统中,核心转储通常使用标准的可执行映像格式:

  • a.out的旧版本中的Unix,
  • 现代Linux、System V、Solaris和BSD系统中的ELF,
  • Mach-O的在MacOS的,等等。

内容由匿名用户提供,本内容不代表vibaike.com立场,内容投诉举报请联系vibaike.com客服。如若转载,请注明出处:https://vibaike.com/116253/

(2)
词条目录
  1. 核心转储
  2. 核心转储的使用
  3. 核心转储的分析
  4. 核心转储文件
  5. 格式化

轻触这里

关闭目录

目录