[ruby-core:104978] [Ruby master Bug#17823] addr2line.c: Interpret `DW_RLE_start_length`
From:
"xtkoba (Tee KOBAYASHI)" <noreply@...>
Date:
2021-08-18 21:06:57 UTC
List:
ruby-core #104978
Issue #17823 has been updated by xtkoba (Tee KOBAYASHI). File ruby-addr2line-interpret-DW_RLE_start_length-r1.patch added An edited patch is attached so that it applies cleanly to the current master head. ---------------------------------------- Bug #17823: addr2line.c: Interpret `DW_RLE_start_length` https://bugs.ruby-lang.org/issues/17823#change-93377 * Author: xtkoba (Tee KOBAYASHI) * Status: Open * Priority: Normal * Backport: 2.6: UNKNOWN, 2.7: UNKNOWN, 3.0: UNKNOWN ---------------------------------------- I noticed some of the symbol names were missing from C backtrace for an i686-linux binary built with GCC 10.3 + DWARF 5, and found that the form `DW_RLE_start_length` is used in it. This form was left uninterpreted in `addr2line.c`, because at the time of implementation the main purpose was to suppress segfaults (#17585). The attached patch implements the interpretation of `DW_RLE_start_length` and `DW_RLE_start_end`. It also fixes some minor errors in the function `ranges_include`, mainly around the base address handling. The patch also fixes the function `read_dw_form_addr` to use the correct address size (`reader->address_size`). Note that the `DW_RLE_*`'s that require `.debug_addr` section are still left uninterpreted. ---Files-------------------------------- ruby-addr2line-interpret-DW_RLE_start_length.patch (3.25 KB) ruby-addr2line-interpret-DW_RLE_start_length-r1.patch (3.26 KB) -- https://bugs.ruby-lang.org/ Unsubscribe: <mailto:ruby-core-request@ruby-lang.org?subject=unsubscribe> <http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>