History log of /freebsd-current/contrib/elftoolchain/addr2line/addr2line.c
Revision Date Author Comments
# 67b94fc5 03-Dec-2020 Ed Maste <emaste@FreeBSD.org>

addr2line: fix allocation leak in error path

CID: 1437677
Reported by: Coverity Scan
Sponsored by: The FreeBSD Foundation


# f4d6ed9a 02-Dec-2020 Ed Maste <emaste@FreeBSD.org>

addr2line: rework check_range conditions

Simplify logic and reduce indentation for DW_AT_low_pc case.

Reviewed by: Tiger Gao, markj
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D27426


# a3617993 27-Nov-2020 Ed Maste <emaste@FreeBSD.org>

addr2line: add label checks when DW_AT_range and DW_AT_low_pc cannot be used

Check label's ranges for address we want to translate if a CU doesn't
have usable DW_AT_range or DW_AT_low_pc.

Use more appropriate names: "struct CU" -> "struct range"

Developed as part of upstream ELF Tool Chain bug report
https://sourceforge.net/p/elftoolchain/tickets/552/ although this does
not address the specific case reported there.

Submitted by: Tiger Gao <tig@freebsdfoundation.org>
MFC after: 1 month
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D23782


# 65c20775 19-Nov-2020 Ed Maste <emaste@FreeBSD.org>

addr2line: swap if conditions for diff reduction in upcoming change

No functional change intended.


# fe91dd01 13-Feb-2020 Ed Maste <emaste@FreeBSD.org>

addr2line: use stdbool.h header for bool

Presumably a bool definition is obtained via header contamination on
FreeBSD-CURRENT. Found while trying to upstream FreeBSD addr2line
changes - the FreeBSD 11.2 CI build failed there.

Reported by: Cirrus-CI, upstream ELF Tool Chain
MFC with: r357844
Sponsored by: The FreeBSD Foundation


# 6c4a4f1b 12-Feb-2020 Ed Maste <emaste@FreeBSD.org>

addr2line: Handle DW_AT_ranges in compile units

Based on original submission by Marat Radchenko in ELF Tool Chain
ticket #545, rebased and updated by Tiger Gao.

PR: 217736
Submitted by: Marat Radchenko <marat@slonopotamus.org>
Submitted by: Tiger Gao <tig@freebsdfoundation.org>
Reviewed by: markj
MFC after: 2 weeks
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D23501


# 35beedae 03-Feb-2020 Mark Johnston <markj@FreeBSD.org>

addr2line: Avoid a name collision.

The RB_ macros define functions with a parameter named head, and gcc
warns about this.

MFC with: r357450


# af843291 03-Feb-2020 Mark Johnston <markj@FreeBSD.org>

addr2line: Cache CU DIEs upon a successful address lookup.

Previously, addr2line would sequentially search all CUs for each input
address. For some uses, notably syzkaller's code coverage map generator,
this was extremely slow. Add a CU cache into which entries are added
following a successful lookup, and search the cache before falling back
to a scan. When translating a large number of addresses this yields
slightly better performance than GNU addr2line.

Garbage-collect an unused hash table which appears to have been intended
for the same purpose. A hash table doesn't seem particularly suitable
since each CU spans a range of addresses.

Submitted by: Tiger Gao <tig@freebsdfoundation.org>
MFC after: 2 weeks
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D23418


# 1d954fed 01-Aug-2019 Mark Johnston <markj@FreeBSD.org>

Capsicumize addr2line(1).

Reviewed by: oshogbo
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D21104


# 7a2e729b 09-Oct-2015 Ed Maste <emaste@FreeBSD.org>

addr2line: initialize die to NULL

GCC on MIPS produced a 'may be used uninitialized' warning after
r289071.

Reported by: sbruno
Pointy hat to: emaste


# c9dbb1cc 22-Sep-2015 Ed Maste <emaste@FreeBSD.org>

addr2line: skip CUs lacking debug info instead of bailing out

Some binaries (such as the FreeBSD kernel) contain a mixture of CUs
with and without debug information. Previously translate() exited upon
encountering a CU without debug information. Instead, just move on to
the next CU.

Reported by: royger
Reviewed by: royger
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D3712


# a7265433 04-Jan-2015 Ed Maste <emaste@FreeBSD.org>

addr2line: fflush output after each address lookup

Certain tools spawn addr2line and pass addresses one at a time for
resolution.

PR: 195561
Reported by: antoine
Sponsored by: The FreeBSD Foundation