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