From: Willy Tarreau Date: Wed, 11 Mar 2026 07:53:37 +0000 (+0100) Subject: MINOR: tools: support an execution context that is just a function X-Git-Tag: v3.4-dev7~58 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=261cae3b6d5625c98c4677840e1c19c476cb492a;p=thirdparty%2Fhaproxy.git 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. --- 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;