Bug #17823
closedaddr2line.c: Interpret `DW_RLE_start_length`
Description
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
Updated by xtkoba (Tee KOBAYASHI) over 3 years ago
Updated by xtkoba (Tee KOBAYASHI) over 3 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.
Updated by xtkoba (Tee KOBAYASHI) over 3 years ago
- File deleted (
ruby-addr2line-interpret-DW_RLE_start_length.patch)
Updated by xtkoba (Tee KOBAYASHI) over 3 years ago
- Status changed from Open to Closed
Applied in changeset git|77e6715d67b92b16bcb4588e0da37b494cdc5278.
Interpret DW_RLE_start_length
Fixes [Bug #17823]