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.
This commit is contained in:
Willy Tarreau 2026-03-11 08:53:37 +01:00
parent aa4d5dd217
commit 261cae3b6d
2 changed files with 5 additions and 0 deletions

View File

@ -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 {

View File

@ -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;