FreeBSD manual
download PDF document: unw_backtrace.3.pdf
UNW_BACKTRACE(3libunwind) Programming Library UNW_BACKTRACE(3libunwind)
NAME
unw_backtrace -- return backtrace for the calling program
SYNOPSIS
#include <libunwind.h>
int unw_backtrace(void **buffer, int size);
int unw_backtrace2(void **buffer, int size, unw_context_t *ctxt, int
flag);
#include <execinfo.h>
int backtrace(void **buffer, int size);
DESCRIPTION
unw_backtrace() is a convenient routine for obtaining the backtrace for
the calling program. The routine fills up to size addresses in the
array pointed by buffer. The routine is only available for local
unwinding.
Note that many (but not all) systems provide a practically identical
function called backtrace(). The prototype for this function is
usually obtained by including the <execinfo.h> header file -- a
prototype for backtrace() is not provided by libunwind. libunwind
weakly aliases backtrace() to unw_backtrace(), so when a program
calling backtrace() is linked against libunwind, it may end up calling
unw_backtrace().
In case you want to obtain the backtrace from a specific unw_context_t,
you can call unw_backtrace2 with that context passing 0 for flag. If
the unw_context_t is known to be a signal frame (i.e., from the third
argument in a sigaction handler on linux), unw_backtrace2 can be used
to collect only the frames before the signal frame passing the
UNW_INIT_SIGNAL_FRAME flag.
RETURN VALUE
The routine returns the number of addresses stored in the array pointed
by buffer. The return value may be zero to indicate that no addresses
were stored.
SEE ALSO
libunwind(3libunwind), unw_step(3libunwind)
AUTHOR
David Mosberger-Tang
Email: dmosberger@gmail.com
WWW: http://www.nongnu.org/libunwind/.
Programming Library 29 August 2023 UNW_BACKTRACE(3libunwind)