从gdb core中,找到最大的可用内存块

从gdb core中,找到最大的可用内存块,gdb,core,fragmentation,Gdb,Core,Fragmentation,我有一个来自系统的进程核心,如果进程分配的内存超过配置的限制,它就会终止进程。 进程似乎崩溃了,因为内存是碎片化的。 为了确认,我想知道最大的可用内存块。 有没有一种方法可以从内核中找到它。假设您使用的是Linux glibc,gdb插件(如)提供了检查免费块的功能 另外,如果您可以使OOM再次发生,您可以尝试一些内存分配器,它具有在崩溃之前自动打印malloc arena布局的功能(包括,请参阅) 如果内存泄漏可能会有所帮助,但我不确定它对内存碎片是否有用

我有一个来自系统的进程核心,如果进程分配的内存超过配置的限制,它就会终止进程。 进程似乎崩溃了,因为内存是碎片化的。 为了确认,我想知道最大的可用内存块。
有没有一种方法可以从内核中找到它。

假设您使用的是Linux glibc,gdb插件(如)提供了检查免费块的功能

另外,如果您可以使OOM再次发生,您可以尝试一些内存分配器,它具有在崩溃之前自动打印malloc arena布局的功能(包括,请参阅)

如果内存泄漏可能会有所帮助,但我不确定它对内存碎片是否有用