MINOR: debug: report applet pointer and handler in crashes when known

When an appctx is found looping over itself, we report a number of info
but not the pointers to the definition nor the handler, which can be quite
handy in some cases. Let's add them and try to decode the symbol.
This commit is contained in:
Willy Tarreau 2022-09-02 09:13:12 +02:00
parent 178dda6b41
commit 714900a3c9

View File

@ -2829,6 +2829,18 @@ void stream_dump_and_crash(enum obj_type *obj, int rate)
}
chunk_appendf(&trash, "}");
if (ptr != s) { // that's an appctx
const struct appctx *appctx = ptr;
chunk_appendf(&trash, " applet=%p(", appctx->applet);
resolve_sym_name(&trash, NULL, appctx->applet);
chunk_appendf(&trash, ")");
chunk_appendf(&trash, " handler=%p(", appctx->applet->fct);
resolve_sym_name(&trash, NULL, appctx->applet->fct);
chunk_appendf(&trash, ")");
}
memprintf(&msg,
"A bogus %s [%p] is spinning at %d calls per second and refuses to die, "
"aborting now! Please report this error to developers "