mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2026-01-30 14:31:08 +01:00
MINOR: debug: implement ha_panic()
This function dumps all existing threads using the thread dump mechanism then aborts. This will be used by the lockup detection and by debugging tools.
This commit is contained in:
parent
9fc5dcbd71
commit
56131ca58e
@ -87,6 +87,7 @@ struct buffer;
|
||||
void ha_task_dump(struct buffer *buf, const struct task *task, const char *pfx);
|
||||
void ha_thread_dump(struct buffer *buf, int thr, int calling_tid);
|
||||
void ha_thread_dump_all_to_trash();
|
||||
void ha_panic();
|
||||
|
||||
/* This one is useful to automatically apply poisonning on an area returned
|
||||
* by malloc(). Only "p_" is required to make it work, and to define a poison
|
||||
|
||||
11
src/debug.c
11
src/debug.c
@ -136,6 +136,17 @@ static int cli_io_handler_show_threads(struct appctx *appctx)
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* dumps a state of all threads into the trash and on fd #2, then aborts. */
|
||||
void ha_panic()
|
||||
{
|
||||
chunk_reset(&trash);
|
||||
chunk_appendf(&trash, "Thread %u is about to kill the process.\n", tid);
|
||||
ha_thread_dump_all_to_trash();
|
||||
write(2, trash.area, trash.data);
|
||||
for (;;)
|
||||
abort();
|
||||
}
|
||||
|
||||
#ifndef USE_THREAD_DUMP
|
||||
|
||||
/* This function dumps all threads' state to the trash. This version is the
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user