| @node backtrace | |
| @subsection @code{backtrace} | |
| @findex backtrace | |
| LSB specification:@* @url{https://refspecs.linuxbase.org/LSB_5.0.0/LSB-Core-generic/LSB-Core-generic/baselib-backtrace-1.html} | |
| Documentation: | |
| @itemize | |
| @item | |
| @ifinfo | |
| @ref{Backtraces,,Backtraces,libc}, | |
| @end ifinfo | |
| @ifnotinfo | |
| @url{https://www.gnu.org/software/libc/manual/html_node/Backtraces.html}, | |
| @end ifnotinfo | |
| @item | |
| @uref{https://www.kernel.org/doc/man-pages/online/pages/man3/backtrace.3.html,,man backtrace}. | |
| @end itemize | |
| Gnulib module: execinfo | |
| @mindex execinfo | |
| Portability problems fixed by Gnulib: | |
| @itemize | |
| @item | |
| This function is missing on many platforms: | |
| musl libc, FreeBSD 9.3, NetBSD 6.1, OpenBSD 6.9, Minix 3.1.8, AIX 5.1, HP-UX 11, Solaris 10, Cygwin 2.9, mingw, MSVC 14, Android API level 32. | |
| @end itemize | |
| Portability problems not fixed by Gnulib: | |
| @itemize | |
| @item | |
| The second argument is of type @code{size_t}, not @code{int}, on some platforms: | |
| FreeBSD, NetBSD, OpenBSD. | |
| @item | |
| The return value may be @code{(size_t)(-1)} instead of 0 on some platforms: | |
| FreeBSD 12.4/i386. | |
| @item | |
| The returned stack trace is empty if it would not entirely fit into the | |
| provided buffer on some platforms: | |
| FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.5. | |
| @item | |
| The returned stack trace is always empty on some platforms: | |
| FreeBSD 11.0/i386, FreeBSD 12.2/sparc64. | |
| @item | |
| On platforms where the function is missing, | |
| the Gnulib substitute implementation is just a stub, and does nothing. | |
| @end itemize | |