mirror of git://gcc.gnu.org/git/gcc.git
When failing in build_address_map, we free the unit that's currently being handled in the loop, but the ones that already have been allocated are leaked. Fix this by keeping track of allocated units in a vector, and releasing them upon failure. Also, now that we have a vector of allocated units, move the freeing upon failure of the abbrevs associated with each unit to build_address_map, and remove the now redundant call to free_unit_addrs_vector. Bootstrapped and reg-tested on x86_64. 2018-12-28 Ian Lance Taylor <iant@golang.org> Tom de Vries <tdevries@suse.de> PR libbacktrace/88063 * dwarf.c (free_unit_addrs_vector): Remove. (build_address_map): Keep track of allocated units in vector. Free allocated units and corresponding abbrevs upon failure. Remove now redundant call to free_unit_addrs_vector. Free addrs vector upon failure. Free allocated unit vector. Co-Authored-By: Tom de Vries <tdevries@suse.de> From-SVN: r267443 |
||
|---|---|---|
| .. | ||
| ChangeLog | ||
| ChangeLog.jit | ||
| Makefile.am | ||
| Makefile.in | ||
| README | ||
| aclocal.m4 | ||
| alloc.c | ||
| allocfail.c | ||
| allocfail.sh | ||
| atomic.c | ||
| backtrace-supported.h.in | ||
| backtrace.c | ||
| backtrace.h | ||
| btest.c | ||
| config.h.in | ||
| configure | ||
| configure.ac | ||
| dwarf.c | ||
| edtest.c | ||
| edtest2.c | ||
| elf.c | ||
| fileline.c | ||
| filetype.awk | ||
| instrumented_alloc.c | ||
| internal.h | ||
| mmap.c | ||
| mmapio.c | ||
| nounwind.c | ||
| pecoff.c | ||
| posix.c | ||
| print.c | ||
| read.c | ||
| simple.c | ||
| sort.c | ||
| state.c | ||
| stest.c | ||
| test_format.c | ||
| testlib.c | ||
| testlib.h | ||
| ttest.c | ||
| unittest.c | ||
| unknown.c | ||
| xcoff.c | ||
| ztest.c | ||
README
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.