[Bug 249070] Using backtrace() from libexecinfo causes program to fail with "libunwind: EHHeaderParser::decodeTableEntry: bad fde: CIE ID is not zero"

bugzilla-noreply at freebsd.org bugzilla-noreply at freebsd.org
Sun Sep 6 15:17:57 UTC 2020


https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=249070

Dimitry Andric <dim at FreeBSD.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|New                         |Open
           Assignee|bugs at FreeBSD.org            |dim at FreeBSD.org

--- Comment #2 from Dimitry Andric <dim at FreeBSD.org> ---
This is sort of a duplicate of bug 241562, which was solved in base r354418, by
turning on unwind tables by default for non-amd64 arches. The example program
fails because there is no unwind information embedded in the tracer functions
in libexecinfo.

As a workaround, you can either apply the following diff, then rebuild and
reinstall libexecinfo:

Index: lib/libexecinfo/Makefile
===================================================================
--- lib/libexecinfo/Makefile    (revision 365364)
+++ lib/libexecinfo/Makefile    (working copy)
@@ -11,6 +11,8 @@ SHLIB_MAJOR=  1
 INCS=          execinfo.h
 SRCS=          backtrace.c symtab.c unwind.c

+CFLAGS+=       -funwind-tables
+
 LIBADD=                elf

 MAN=           backtrace.3

Alternatively, base r354418 can be backported to releng/12.1, but that would
require a full rebuild of clang, *and* a rebuild of libexecinfo, so that seems
overkill to me.

I'm unsure whether this is serious enough to warrant an Errata Notice.

-- 
You are receiving this mail because:
You are the assignee for the bug.


More information about the freebsd-bugs mailing list