addr2line.c: Interpret `DW_RLE_start_length`
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_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 (
Note that the
DW_RLE_*'s that require
.debug_addr section are still left uninterpreted.
Updated by xtkoba (Tee KOBAYASHI) over 2 years ago
- File ruby-addr2line-interpret-DW_RLE_start_length-r1.patch 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.