从gdb核心,找到最大的可用内存块

时间:2017-06-28 09:58:53

标签: gdb core fragmentation

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

1 个答案:

答案 0 :(得分:1)

假设您正在使用Linux glibc,gdb插件(例如libheapgefpwndbg提供了检查空闲块的功能。

此外,如果您可以重新发生OOM,您可以尝试一些内存分配器,它具有在崩溃之前自行打印malloc竞技场布局的功能(包括jemalloc,请参阅Use Case: Basic Allocator Statistics

如果内存泄漏,

Valgrind可能会有所帮助,但我不确定它对内存碎片有用。

相关问题