From: Serhei Makarov Date: Thu, 27 Feb 2025 19:38:55 +0000 (-0500) Subject: libdwfl: add dwfl_thread_ebl X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=refs%2Fheads%2Fusers%2Fserhei%2Feu-stacktrace.v1;p=thirdparty%2Felfutils.git libdwfl: add dwfl_thread_ebl Exposing the Ebl * here allows libdwfl users to access the ebl_set_initial_regs_sample callback for a given process. * libdw/libdw.map: Add dwfl_thread_ebl. * libdwfl/dwfl_frame.c (dwfl_thread_ebl): New function. * libdwfl/dwfl_frame.c (dwfl_thread_ebl): New function. --- diff --git a/libdw/libdw.map b/libdw/libdw.map index ce990a09..a8241a29 100644 --- a/libdw/libdw.map +++ b/libdw/libdw.map @@ -393,4 +393,5 @@ ELFUTILS_0.193 { dwfl_process_tracker_end; dwfl_process_tracker_find_elf; dwfl_process_tracker_find_pid; + dwfl_thread_ebl; } ELFUTILS_0.192; diff --git a/libdwfl/dwfl_frame.c b/libdwfl/dwfl_frame.c index 1e715346..46b16b3a 100644 --- a/libdwfl/dwfl_frame.c +++ b/libdwfl/dwfl_frame.c @@ -239,6 +239,12 @@ dwfl_thread_dwfl (Dwfl_Thread *thread) } INTDEF(dwfl_thread_dwfl) +Ebl * +dwfl_thread_ebl (Dwfl_Thread *thread) +{ + return thread->process->ebl; +} + pid_t dwfl_thread_tid (Dwfl_Thread *thread) { diff --git a/libdwfl/libdwfl.h b/libdwfl/libdwfl.h index 16b351cf..1092d2e1 100644 --- a/libdwfl/libdwfl.h +++ b/libdwfl/libdwfl.h @@ -30,6 +30,7 @@ #define _LIBDWFL_H 1 #include "libdw.h" +#include "libebl.h" #include /* Handle for a session using the library to attach to a single target process. */ @@ -786,6 +787,10 @@ pid_t dwfl_pid (Dwfl *dwfl) Dwfl *dwfl_thread_dwfl (Dwfl_Thread *thread) __nonnull_attribute__ (1); +/* Return EBL associated with THREAD. This function never fails. */ +Ebl *dwfl_thread_ebl (Dwfl_Thread *thread) + __nonnull_attribute__ (1); + /* Return positive TID (thread ID) for THREAD. This function never fails. */ pid_t dwfl_thread_tid (Dwfl_Thread *thread) __nonnull_attribute__ (1);