Project

General

Profile

« Previous | Next » 

Revision 19823032

Added by nagachika (Tomoyuki Chikanaga) almost 2 years ago

merge revision(s) 954b7ac81ef503df3c1efc5566df985b08951d52: [Backport #19789]

    addr2line.c: fix `DW_FORM_ref_addr` parsing for DWARF 2 (#8146)

    addr2line.c: fix DW_FORM_ref_addr parsing for DWARF 2

    This fixes a crash when retrieving backtrace info with YJIT enabled on
    macOS with Rust 1.71.0. Since Rust 1.71.0, the DWARF info generated by
    the Rust compiler uses DW_FORM_ref_addr instead of DW_FORM_ref4 for
    pointers to other DIEs.
    DW_FORM_ref_addr representation in DWARF 2 is different from DWARF 3+,
    so we need to handle it separately.
    This patch fixes the parsing of DW_FORM_ref_addr for DWARF 2, which is
    the default DWARF version Rustc uses on macOS.

    See the DWARF 2.0.0 spec, section 7.5.4 Attribute Encodings
    https://dwarfstd.org/doc/dwarf-2.0.0.pdf

    https://bugs.ruby-lang.org/issues/19789
    ---
     addr2line.c | 40 ++++++++++++++++++++++++++--------------
     1 file changed, 26 insertions(+), 14 deletions(-)