我们的进程可以使用100 GB的RAM,这显然会产生核心转储文件大小的问题。大文件很糟糕,因为它们需要很长时间才能写入,但是(对我们来说更糟)它们可能会填满它们写入的分区。
此外,如果核心文件位于远程位置,我们可能希望通过WAN进行传输,通常可能需要几天。
显然我们可以压缩核心,这可能会减小尺寸。我想要做的是操纵核心从核心文件中删除一些较大的数据结构,将其缩小到更易于管理的大小。
从内部来看,我们可以捕获SEGV并手动编写核心转储。
来自"外部",我们可以写一些gdb魔法来找出大型结构的位置,将它们归零,然后压缩。
这两种方法都没有多大吸引力......