From d9701d312dce20785b17f3a7f5938ec8ac160f9c Mon Sep 17 00:00:00 2001 From: Willy Tarreau Date: Wed, 16 Jul 2025 14:42:34 +0200 Subject: [PATCH] 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. --- dev/gdb/memprof.dbg | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 dev/gdb/memprof.dbg 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 + + -- 2.47.2