是否可以获取只包含调用堆栈、线程和局部变量的Linux coredump?

是否可以获取只包含调用堆栈、线程和局部变量的Linux coredump?,linux,segmentation-fault,coredump,Linux,Segmentation Fault,Coredump,我的公司正在利用Linux(尤其是CentOS)中的coredump功能来追踪一些难以发现的问题。不幸的是,我们有一堆运行在有限HD空间中的小型虚拟机,而由于堆占用了大量空间,完整的内核转储正在引发问题 当出现分段错误时,是否可以让Linux转储调用堆栈、线程和局部变量?我试着将转储限制在50兆字节,但看起来并不是所有需要的细节都在前50兆字节(ulimit-c51200)。我们可以像那样截断堆,但是我还没有找到什么大小可以工作 我知道,在需要的时候,可以编写自己的调用堆栈,并添加一些额外的代码

我的公司正在利用Linux(尤其是CentOS)中的coredump功能来追踪一些难以发现的问题。不幸的是,我们有一堆运行在有限HD空间中的小型虚拟机,而由于堆占用了大量空间,完整的内核转储正在引发问题

当出现分段错误时,是否可以让Linux转储调用堆栈、线程和局部变量?我试着将转储限制在50兆字节,但看起来并不是所有需要的细节都在前50兆字节(ulimit-c51200)。我们可以像那样截断堆,但是我还没有找到什么大小可以工作


我知道,在需要的时候,可以编写自己的调用堆栈,并添加一些额外的代码,但我们已经到了收尾的时候了,对于我们遇到的最后几个问题来说,这将是一个艰难的任务。

您可以将核心转储通过管道传输到程序,然后编写自己的筛选器。 摘自

由于内核2.6.19,Linux支持 /proc/sys/kernel/core_模式文件。如果这个的第一个字符 文件是管道符号(|),则该线的其余部分为 解释为要执行的程序。而不是写信给 一个磁盘文件,核心转储作为程序的标准输入

您还可以控制哪些映射被写入核心转储,这可能用于减少核心转储的大小

自内核2.6.23以来,Linux特有的/proc/PID/coredump\u过滤器 文件可用于控制哪些内存段写入核心转储文件

当然,所有这些都取决于内核版本和配置选项


有关示例或详细信息,请参阅我提供的链接。

您可以通过管道将核心转储传输到程序,然后编写自己的筛选器。 摘自

由于内核2.6.19,Linux支持 /proc/sys/kernel/core_模式文件。如果这个的第一个字符 文件是管道符号(|),则该线的其余部分为 解释为要执行的程序。而不是写信给 一个磁盘文件,核心转储作为程序的标准输入

您还可以控制哪些映射被写入核心转储,这可能用于减少核心转储的大小

自内核2.6.23以来,Linux特有的/proc/PID/coredump\u过滤器 文件可用于控制哪些内存段写入核心转储文件

当然,所有这些都取决于内核版本和配置选项


有关示例或详细信息,请参阅我提供的链接。

这似乎包含答案,但我们的系统没有使用该内核。所以,虽然它对我没有帮助,但也许它会帮助其他人。谢谢。这似乎包含了答案,但是我们的系统没有使用这个内核。所以,虽然它对我没有帮助,但也许它会帮助其他人。谢谢马里。