BACKTRACE(3) | Library Functions Manual | BACKTRACE(3) |
backtrace
, backtrace_symbols
,
backtrace_symbols_fd
,
backtrace_symbols_fmt
,
backtrace_symbols_fd_fmt
—
#include <execinfo.h>
size_t
backtrace
(void
**addrlist, size_t
len);
char **
backtrace_symbols
(void
* const *addrlist, size_t
len);
int
backtrace_symbols_fd
(void
* const *addrlist, size_t
len, int fd);
char **
backtrace_symbols_fmt
(void
* const *addrlist, size_t
len, const char
*fmt);
int
backtrace_symbols_fd_fmt
(void
* const *addrlist, size_t
len, int fd,
const char *fmt);
backtrace
() function places into the array pointed
by addrlist the array of the values of the program
counter for each frame called up to len frames. The
number of frames found (which can be fewer than len) is
returned.
The backtrace_symbols_fmt
() function takes
an array of previously filled addresses from
backtrace
() in addrlist of
len elements, and uses fmt to
format them. The formatting characters available are:
a
n
d
D
f
The array of formatted strings is returned as a contiguous memory address which can be freed by a single free(3).
The backtrace_symbols
() function is
equivalent of calling backtrace_symbols_fmt
() with a
format argument of “%a <%n%D> at %f”
The backtrace_symbols_fd
() and
backtrace_symbols_fd_fmt
() are similar to the non
_fd named functions, only instead of returning an array of strings, they
print a new-line separated array of strings in fd, and return
0
on success and -1
on
failure.
backtrace
() function returns the number of elements
that were filled in the backtrace. The
backtrace_symbols
() and
backtrace_symbols_fmt
() return a string array on
success, and NULL
on failure, setting
errno. Diagnostic output may also be produced by the ELF
symbol lookup functions.
backtrace
() library of functions first appeared in
NetBSD 7.0.
November 5, 2015 | NetBSD 9.0 |