核心转储——Linux

foo*_*o_l 3 linux core-dump linux-kernel

我正在尝试了解核心转储生成。用户空间应用进程崩溃和内核级崩溃是否分别生成核心转储?是ulimit -c两种吗?

von*_*and 5

当用户态程序崩溃时,它可以留下一个core文件,在它宕机时包含内存内容的副本(这个core名字来自计算的史前时代,当内存 核心时)。这是由ulimit(1)命令控制的,它通常被禁用,因为核心文件很大并且容易混淆新手。核心文件可以通过例如调试器连同可执行文件和符号表一起分析,以找出发生了什么。

当内核崩溃时,它通常会触发内核恐慌。如果内核发现了一些严重的不一致,指望它理智地写出任何东西真的是不明智的。所以没有核心被生成,系统就会崩溃。围绕发生问题的地址的寄存器和代码的内容被写入控制台。最好将其保存(例如拍照)以供日后分析。

类似的情况是内核 Oops,当内核检测到不被认为是致命的不一致时。在这种情况下(如在内核恐慌中),出现问题的地址周围的寄存器和代码的内容将写入控制台,并记录下来。