标签: gdb core fragmentation
我有一个来自系统的进程核心,如果它分配超出配置限制的内存,就会终止进程。 似乎这个过程崩溃了,因为内存是碎片化的。 确认我想知道最大的可用内存块。 有没有办法可以从核心找到它。
答案 0 :(得分:1)
假设您正在使用Linux glibc,gdb插件(例如libheap,gef,pwndbg提供了检查空闲块的功能。
此外,如果您可以重新发生OOM,您可以尝试一些内存分配器,它具有在崩溃之前自行打印malloc竞技场布局的功能(包括jemalloc,请参阅Use Case: Basic Allocator Statistics )
Valgrind可能会有所帮助,但我不确定它对内存碎片有用。