mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-11-24 12:20:59 +01:00
DEBUG: tinfo: store the pthread ID and the stack pointer in tinfo
When debugging a core, it's difficult to match a given gdb thread number against an internal thread. Let's just store the pthread ID and the stack pointer in each tinfo. This could help in the future by allowing to just glance over them and pick the right one depending what info is found first.
This commit is contained in:
parent
53da8bfcb6
commit
2268f10dd6
@ -110,6 +110,10 @@ struct thread_info {
|
||||
uint tid, ltid; /* process-wide and group-wide thread ID (start at 0) */
|
||||
ulong ltid_bit; /* bit masks for the tid/ltid */
|
||||
uint tgid; /* ID of the thread group this thread belongs to (starts at 1; 0=unset) */
|
||||
/* 32-bit hole here */
|
||||
|
||||
ullong pth_id; /* the pthread_t cast to a ullong */
|
||||
void *stack_top; /* the top of the stack when entering the thread */
|
||||
|
||||
/* pad to cache line (64B) */
|
||||
char __pad[0]; /* unused except to check remaining room */
|
||||
|
||||
@ -3056,6 +3056,12 @@ static void *run_thread_poll_loop(void *data)
|
||||
ha_set_thread(data);
|
||||
set_thread_cpu_affinity();
|
||||
clock_set_local_source();
|
||||
|
||||
#ifdef USE_THREAD
|
||||
ha_thread_info[tid].pth_id = ha_get_pthread_id(tid);
|
||||
#endif
|
||||
ha_thread_info[tid].stack_top = __builtin_frame_address(0);
|
||||
|
||||
/* thread is started, from now on it is not idle nor harmless */
|
||||
thread_harmless_end();
|
||||
thread_idle_end();
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user