Project

General

Profile

Actions

Bug #17823

closed

addr2line.c: Interpret `DW_RLE_start_length`

Added by xtkoba (Tee KOBAYASHI) almost 3 years ago. Updated over 2 years ago.

Status:
Closed
Assignee:
-
Target version:
-
[ruby-core:103578]

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 2 years ago

An edited patch is attached so that it applies cleanly to the current master head.

Actions #3

Updated by xtkoba (Tee KOBAYASHI) over 2 years ago

  • File deleted (ruby-addr2line-interpret-DW_RLE_start_length.patch)
Actions #4

Updated by xtkoba (Tee KOBAYASHI) over 2 years ago

  • Status changed from Open to Closed

Applied in changeset git|77e6715d67b92b16bcb4588e0da37b494cdc5278.


Interpret DW_RLE_start_length

Fixes [Bug #17823]

Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0