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.
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 {
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;