gcc/libbacktrace
Ian Lance Taylor 0755f573f0 libbacktrace: avoid ambiguous binary search
Searching for a range match can cause the search order to not match
the sort order, which can cause libbacktrace to miss matching entries.
Allocate an extra entry at the end of function_addrs and unit_addrs vectors,
so that we can safely compare to the next entry when searching.
Adjust the matching code accordingly.

Fixes https://github.com/ianlancetaylor/libbacktrace/issues/44.

	* dwarf.c (function_addrs_search): Compare against the next entry
	low address, not the high address.
	(unit_addrs_search): Likewise.
	(build_address_map): Add a trailing unit_addrs.
	(read_function_entry): Add a trailing function_addrs.
	(read_function_info): Likewise.
	(report_inlined_functions): Search backward for function_addrs
	match.
	(dwarf_lookup_pc): Search backward for unit_addrs and
	function_addrs matches.
2020-09-08 18:22:35 -07:00
..
aclocal.m4
alloc.c
allocfail.c
allocfail.sh
atomic.c
backtrace-supported.h.in
backtrace.c
backtrace.h
btest.c
ChangeLog Daily bump. 2020-09-09 00:16:29 +00:00
ChangeLog.jit
config.h.in
configure Require CET support only for the final GCC build 2020-07-30 05:36:24 -07:00
configure.ac libbacktrace: test linker support for DWARF 5 2020-07-07 20:45:10 -07:00
dwarf.c libbacktrace: avoid ambiguous binary search 2020-09-08 18:22:35 -07:00
edtest2.c
edtest.c
elf.c
fileline.c
filetype.awk libbacktrace: only match magic number at start of line 2020-09-08 12:52:29 -07:00
install-debuginfo-for-buildid.sh.in
instrumented_alloc.c
internal.h
macho.c libbacktrace: correct memory lengths in Mach-O dsym support 2020-09-08 14:51:32 -07:00
Makefile.am libbacktrace: Enable Intel CET on Intel CET enabled host for jit 2020-05-12 09:24:09 -07:00
Makefile.in libbacktrace: Enable Intel CET on Intel CET enabled host for jit 2020-05-12 09:24:09 -07:00
mmap.c
mmapio.c
nounwind.c
pecoff.c
posix.c libbacktrace: treat EACCESS like ENOENT 2020-05-13 10:19:58 -07:00
print.c
read.c
README
simple.c libbacktrace: fix tipo in comment 2020-09-08 15:07:24 -07:00
sort.c
state.c
stest.c
test_format.c
testlib.c
testlib.h
ttest.c
unittest.c
unknown.c
xcoff.c
ztest.c libbacktrace: mark test_large parameter unused in ztest.c 2020-05-13 11:09:53 -07:00

The libbacktrace library
Initially written by Ian Lance Taylor <iant@google.com>

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 September 2012, libbacktrace only supports ELF executables with
DWARF debugging information.  The library is written to make it
straightforward to add support for other object file and debugging
formats.