UNW_SET_ITERATE_PHDR_FUNCTION(3libunwind) Programming Library UNW_SET_ITERATE_PHDR_FUNCTION(3libunwind)

unw_set_iterate_phdr_function -- set dl_iterate_phdr implementation

#include <libunwind.h>

typedef int (*unw_iterate_phdr_callback_t)(struct dl_phdr_info *, size_t, void *);
typedef int (*unw_iterate_phdr_func_t)(unw_iterate_phdr_callback_t, void *);

void unw_set_iterate_phdr_function(unw_addr_space_t as, unw_iterate_phdr_func_t function);

The unw_set_iterate_phdr_function() routine sets the dl_iterate_phdr implementation of address space as to the function by argument function. The function will be called whenever libunwind needs to iterate over the program headers of the application. This is normally done by calling dl_iterate_phdr, but this function is not signal safe. With the help of a custom implementation caching and iterating over the program headers is also possible in an signal-safe manner. Though the burden lies on the user of libunwind.

unw_set_iterate_phdr_function() is thread safe. If the local address space is passed in argument as, this routine is also safe to use from a signal handler.

libunwind(3libunwind), unw_create_addr_space(3libunwind), dl_iterate_phdr(3libunwind),

Bert Wesarg
Email: bert.wesarg@googlemail.com
WWW: http://www.nongnu.org/libunwind/.

29 August 2023 Programming Library