From 261cae3b6d5625c98c4677840e1c19c476cb492a Mon Sep 17 00:00:00 2001 From: Willy Tarreau Date: Wed, 11 Mar 2026 08:53:37 +0100 Subject: [PATCH] MINOR: tools: support an execution context that is just a function The purpose here is to be able to spot certain callbacks, such as the SSL message callbacks, which are difficult to associate to anything. Thus we introduce a new context type, TH_EX_CTX_FUNC, for which the context is just the function pointed to by the void *pointer. One difficulty with callbacks is that the allocation and release contexts will likely be different, so the code should be properly structured to allow proper tracking, either by instrumenting all calls, or by making sure that the free calls are easy to spot in a report. --- include/haproxy/tinfo-t.h | 1 + src/tools.c | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/include/haproxy/tinfo-t.h b/include/haproxy/tinfo-t.h index 5dce74383..f061a6e79 100644 --- a/include/haproxy/tinfo-t.h +++ b/include/haproxy/tinfo-t.h @@ -83,6 +83,7 @@ enum thread_exec_ctx_type { TH_EX_CTX_CALLER, /* the pointer is an ha_caller of the caller providing file:line etc */ TH_EX_CTX_SMPF, /* directly registered sample fetch function, using .smpf_kwl */ TH_EX_CTX_CONV, /* directly registered converter function, using .conv_kwl */ + TH_EX_CTX_FUNC, /* hopefully recognizable function/callback, using .pointer */ }; struct thread_exec_ctx { diff --git a/src/tools.c b/src/tools.c index 10a9badca..58fa78013 100644 --- a/src/tools.c +++ b/src/tools.c @@ -7535,6 +7535,10 @@ void chunk_append_thread_ctx(struct buffer *output, const struct thread_exec_ctx case TH_EX_CTX_CONV: chunk_appendf(output,"conv kwl starting with '%s'", ctx->conv_kwl->kw[0].kw); break; + case TH_EX_CTX_FUNC: + resolve_sym_name(output, "func '", ctx->pointer); + chunk_appendf(output,"'"); + break; default: chunk_appendf(output,"other ctx %p", ctx->pointer); break;