1 1.1 christos The libbacktrace library 2 1.1.1.2 christos Initially written by Ian Lance Taylor <iant (a] golang.org> 3 1.1 christos 4 1.1 christos The libbacktrace library may be linked into a program or library and 5 1.1.1.2 christos used to produce symbolic backtraces. 6 1.1.1.2 christos Sample uses would be to print a detailed backtrace when an error 7 1.1.1.2 christos occurs or to gather detailed profiling information. 8 1.1.1.2 christos In general the functions provided by this library are async-signal-safe, 9 1.1.1.2 christos meaning that they may be safely called from a signal handler. 10 1.1 christos 11 1.1.1.2 christos The libbacktrace library is provided under a BSD license. 12 1.1.1.2 christos See the source files for the exact license text. 13 1.1 christos 14 1.1 christos The public functions are declared and documented in the header file 15 1.1 christos backtrace.h, which should be #include'd by a user of the library. 16 1.1 christos 17 1.1 christos Building libbacktrace will generate a file backtrace-supported.h, 18 1.1 christos which a user of the library may use to determine whether backtraces 19 1.1.1.2 christos will work. 20 1.1.1.2 christos See the source file backtrace-supported.h.in for the macros that it 21 1.1.1.2 christos defines. 22 1.1 christos 23 1.1.1.2 christos As of October 2020, libbacktrace supports ELF, PE/COFF, Mach-O, and 24 1.1.1.2 christos XCOFF executables with DWARF debugging information. 25 1.1.1.2 christos In other words, it supports GNU/Linux, *BSD, macOS, Windows, and AIX. 26 1.1.1.2 christos The library is written to make it straightforward to add support for 27 1.1.1.2 christos other object file and debugging formats. 28 1.1.1.2 christos 29 1.1.1.2 christos The library relies on the C++ unwind API defined at 30 1.1.1.2 christos https://itanium-cxx-abi.github.io/cxx-abi/abi-eh.html 31 1.1.1.2 christos This API is provided by GCC and clang. 32