A C library that may be linked into a C/C++ program to produce symbolic backtraces
Go to file
Ștefan Talpalaru 2e878a38dd
document the forking history
2020-02-20 21:50:31 +01:00
config libbacktrace: rebuild configury with GCC standard tool versions 2018-01-16 17:42:38 -08:00
.gitignore update .gitignore 2020-02-18 20:30:53 +01:00
LICENSE libbacktrace: initial commit 2016-09-10 07:59:09 -07:00
Makefile.am libbacktrace: rebuild configury with GCC standard tool versions 2018-01-16 17:42:38 -08:00
Makefile.in libbacktrace: rebuild configury with GCC standard tool versions 2018-01-16 17:42:38 -08:00
Mark.Twain-Tom.Sawyer.txt Add text used for "inflate large" test. 2018-01-16 17:40:25 -08:00
README.md document the forking history 2020-02-20 21:50:31 +01:00
acinclude.m4 Update from gcc trunk version of libbacktrace at svn rev 256427. (#8) 2018-01-12 10:26:02 -08:00
aclocal.m4 libbacktrace: rebuild configury with GCC standard tool versions 2018-01-16 17:42:38 -08:00
alloc.c Update from gcc trunk version of libbacktrace at svn rev 256427. (#8) 2018-01-12 10:26:02 -08:00
atomic.c Update from gcc trunk version of libbacktrace at svn rev 256427. (#8) 2018-01-12 10:26:02 -08:00
backtrace-supported.h.in all: remove meaningless trailing whitespace 2016-09-11 06:45:37 -07:00
backtrace.c * backtrace.c: Revert last change. Don't call mmap 2018-04-17 10:59:18 -07:00
backtrace.h Update from gcc trunk version of libbacktrace at svn rev 256427. (#8) 2018-01-12 10:26:02 -08:00
btest.c * elf.c (elf_add): Close descriptor if we use a debugfile. 2018-01-31 15:24:01 -08:00
config.guess update "config.guess" and "config.sub" 2020-02-18 20:23:13 +01:00
config.h.in libbacktrace: rebuild configury with GCC standard tool versions 2018-01-16 17:42:38 -08:00
config.sub update "config.guess" and "config.sub" 2020-02-18 20:23:13 +01:00
configure Apply rust-lang/rust@8581b59fb3 2018-05-22 12:56:59 -07:00
configure.ac Apply rust-lang/rust@8581b59fb3 2018-05-22 12:56:59 -07:00
dwarf.c Update from gcc trunk version of libbacktrace at svn rev 256427. (#8) 2018-01-12 10:26:02 -08:00
edtest.c Update from gcc trunk version of libbacktrace at svn rev 256427. (#8) 2018-01-12 10:26:02 -08:00
edtest2.c Update from gcc trunk version of libbacktrace at svn rev 256427. (#8) 2018-01-12 10:26:02 -08:00
elf.c Copy changes from GCC: 2018-04-17 07:04:02 -07:00
fileline.c Update from gcc trunk version of libbacktrace at svn rev 256427. (#8) 2018-01-12 10:26:02 -08:00
filenames.h Update from gcc trunk version of libbacktrace at svn rev 256427. (#8) 2018-01-12 10:26:02 -08:00
filetype.awk Apply rust-lang/rust@e8121b3d16 2018-05-22 12:54:52 -07:00
install-sh libbacktrace: initial commit 2016-09-10 07:59:09 -07:00
internal.h Update from gcc trunk version of libbacktrace at svn rev 256427. (#8) 2018-01-12 10:26:02 -08:00
ltmain.sh Apply rust-lang/rust@55e2b7e1b4 2018-05-22 12:38:02 -07:00
macho.c Fix build of macho.c on OSX 2018-05-25 07:05:55 -07:00
missing libbacktrace: initial commit 2016-09-10 07:59:09 -07:00
mmap.c * mmap.c (backtrace_free_locked): Don't put more than 16 entries 2018-01-24 18:25:39 -08:00
mmapio.c Update from gcc trunk version of libbacktrace at svn rev 256427. (#8) 2018-01-12 10:26:02 -08:00
move-if-change Update from gcc trunk version of libbacktrace at svn rev 256427. (#8) 2018-01-12 10:26:02 -08:00
nounwind.c Update from gcc trunk version of libbacktrace at svn rev 256427. (#8) 2018-01-12 10:26:02 -08:00
pecoff.c Apply rust-lang/rust@d14b268b9d 2018-05-22 12:50:25 -07:00
posix.c Update from gcc trunk version of libbacktrace at svn rev 256427. (#8) 2018-01-12 10:26:02 -08:00
print.c Update from gcc trunk version of libbacktrace at svn rev 256427. (#8) 2018-01-12 10:26:02 -08:00
read.c Update from gcc trunk version of libbacktrace at svn rev 256427. (#8) 2018-01-12 10:26:02 -08:00
simple.c Update from gcc trunk version of libbacktrace at svn rev 256427. (#8) 2018-01-12 10:26:02 -08:00
sort.c Update from gcc trunk version of libbacktrace at svn rev 256427. (#8) 2018-01-12 10:26:02 -08:00
state.c Update from gcc trunk version of libbacktrace at svn rev 256427. (#8) 2018-01-12 10:26:02 -08:00
stest.c Update from gcc trunk version of libbacktrace at svn rev 256427. (#8) 2018-01-12 10:26:02 -08:00
testlib.c Update from gcc trunk version of libbacktrace at svn rev 256427. (#8) 2018-01-12 10:26:02 -08:00
testlib.h Update from gcc trunk version of libbacktrace at svn rev 256427. (#8) 2018-01-12 10:26:02 -08:00
ttest.c Update from gcc trunk version of libbacktrace at svn rev 256427. (#8) 2018-01-12 10:26:02 -08:00
unknown.c Update from gcc trunk version of libbacktrace at svn rev 256427. (#8) 2018-01-12 10:26:02 -08:00
xcoff.c Copy changes from GCC: 2018-04-17 07:04:02 -07:00
ztest.c libbacktrace: update to GCC SVN revision 256776 2018-01-16 17:39:45 -08:00

README.md

libbacktrace

A C library that may be linked into a C/C++ program to produce symbolic backtraces

Initially written by Ian Lance Taylor iant@golang.org, then forked by Rust developers in May 2018 and forked again by Nim developers in February 2020 (because the Rust people moved on to their own implementation). Ian started writing his own version of macOS support, a couple of days before this last fork was made. If that's successful, we'll be happy to go back to using upstream.

Original README

This is version 1.0. It is likely that this will always be version 1.0.

The libbacktrace library may be linked into a program or library and used to produce symbolic backtraces. Sample uses would be to print a detailed backtrace when an error occurs or to gather detailed profiling information.

The libbacktrace library is provided under a BSD license. See the source files for the exact license text.

The public functions are declared and documented in the header file backtrace.h, which should be #include'd by a user of the library.

Building libbacktrace will generate a file backtrace-supported.h, which a user of the library may use to determine whether backtraces will work. See the source file backtrace-supported.h.in for the macros that it defines.

As of January 2018, libbacktrace only supports ELF, PE/COFF, and XCOFF executables with DWARF debugging information. The library is written to make it straightforward to add support for other object file and debugging formats.

The library relies on the C++ unwind API defined at https://itanium-cxx-abi.github.io/cxx-abi/abi-eh.html This API is provided by GCC.