From: Willy Tarreau Date: Wed, 16 Jul 2025 12:42:34 +0000 (+0200) Subject: DEV: gdb: add a memprofile decoder to the debug tools X-Git-Tag: v3.3-dev4~72 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=d9701d312dce20785b17f3a7f5938ec8ac160f9c;p=thirdparty%2Fhaproxy.git DEV: gdb: add a memprofile decoder to the debug tools "memprof_dump" will visit memprofile entries and dump them in a synthetic format counting allocations/releases count/size, type and calling address. --- diff --git a/dev/gdb/memprof.dbg b/dev/gdb/memprof.dbg new file mode 100644 index 000000000..8c6fd588a --- /dev/null +++ b/dev/gdb/memprof.dbg @@ -0,0 +1,19 @@ +# show non-null memprofile entries with method, alloc/free counts/tot and caller + +define memprof_dump + set $i = 0 + set $meth={ "UNKN", "MALL", "CALL", "REAL", "STRD", "FREE", "P_AL", "P_FR", "STND", "VALL", "ALAL", "PALG", "MALG", "PVAL" } + while $i < sizeof(memprof_stats) / sizeof(memprof_stats[0]) + if memprof_stats[$i].alloc_calls || memprof_stats[$i].free_calls + set $m = memprof_stats[$i].method + printf "m:%s ac:%u fc:%u at:%u ft:%u ", $meth[$m], \ + memprof_stats[$i].alloc_calls, memprof_stats[$i].free_calls, \ + memprof_stats[$i].alloc_tot, memprof_stats[$i].free_tot + output/a memprof_stats[$i].caller + printf "\n" + end + set $i = $i + 1 + end +end + +