UNW\_SET\_ITERATE\_PHDR\_FUNCTION(3libunwind)

NAME
unw_set_iterate_phdr_function -- set dl_iterate_phdr implementation

SYNOPSIS

#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);

DESCRIPTION

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.

THREAD AND SIGNAL SAFETY

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.

SEE ALSO

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

AUTHOR

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