@fd - bug RedHat memiliki jawaban Anda.
mallinfo
fungsi telah ditinggalkan, dan tidak akan diperbarui. API statistik kueri yang sebenarnya adalah TDB. Hari ini, Anda memiliki malloc_stats
dan malloc_info
. Saya tidak dapat menemukan dokumentasi apa pun di keduanya, tetapi inilah yang mereka berikan kepada Anda.
Apakah ini cukup dekat dengan yang Anda butuhkan?
(gdb) call malloc_stats()
Arena 0:
system bytes = 135168
in use bytes = 96
Total (incl. mmap):
system bytes = 135168
in use bytes = 96
max mmap regions = 0
max mmap bytes = 0
(gdb) call malloc_info(0, stdout)
<malloc version="1">
<heap nr="0">
<sizes>
<unsorted from="1228788" to="1229476" total="3917678" count="3221220448"/>
</sizes>
<total type="fast" count="0" size="0"/>
<total type="rest" count="3221220448" size="3917678"/>
<system type="current" size="135168"/>
<system type="max" size="135168"/>
<aspace type="total" size="135168"/>
<aspace type="mprotect" size="135168"/>
</heap>
<total type="fast" count="0" size="0"/>
<total type="rest" count="3221220448" size="3917678"/>
<system type="current" size="135168
/>
<system type="max" size="135168
/>
<aspace type="total" size="135168"/>
<aspace type="mprotect" size="135168"/>
</malloc>
Jika Anda dapat mengubah kode:
#include <malloc.h>
#include <stdio.h>
void dumpMallinfo(void) {
struct mallinfo m = mallinfo();
printf("uordblks = %d\nfordblks = %d\n", m.uordblks, m.fordblks);
}
Di GDB, Anda dapat call dumpMallinfo()
.