@fd - le bogue RedHat avait votre réponse.
Le mallinfo
La fonction est obsolète et ne sera pas mise à jour. Une véritable API de statistiques de requête est TDB. Aujourd'hui, vous avez malloc_stats
et malloc_info
. Je ne trouve aucune documentation sur l'un ou l'autre, mais voici ce qu'ils vous donnent.
Est-ce assez proche de ce dont vous avez besoin ?
(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>
Si vous pouvez changer le code :
#include <malloc.h>
#include <stdio.h>
void dumpMallinfo(void) {
struct mallinfo m = mallinfo();
printf("uordblks = %d\nfordblks = %d\n", m.uordblks, m.fordblks);
}
Dans GDB, vous pouvez call dumpMallinfo()
.