On Tue, Dec 11, 2018 at 2:14 AM Tom de Vries <tdevr...@suse.de> wrote:
>
> Handle DW_FORM_GNU_strp_alt and DW_FORM_GNU_ref_alt references robustly in
> presence of missing .gnu_debugaltlink file.
>
> 2018-11-11  Tom de Vries  <tdevr...@suse.de>
>
>         * dwarf.c (enum attr_val_encoding): Add ATTR_VAL_NONE.
>         (read_attribute): Add altlink parameter.  Handle missing altlink for
>         DW_FORM_GNU_strp_alt and DW_FORM_GNU_ref_alt.
>         (find_address_ranges, build_address_map, build_dwarf_data): Add and
>         handle altlink parameter.
>         (read_referenced_name, read_function_entry): Add argument to
>         read_attribute call.



>  read_attribute (enum dwarf_form form, struct dwarf_buf *buf,
>                 int is_dwarf64, int version, int addrsize,
>                 const unsigned char *dwarf_str, size_t dwarf_str_size,
> -               struct attr_val *val)
> +               struct attr_val *val, struct dwarf_data *altlink)
>  {

altlink is not a result parameter, so it should be before val.


> @@ -1277,7 +1289,8 @@ find_address_ranges (struct backtrace_state *state, 
> uintptr_t base_address,
>                      size_t dwarf_ranges_size,
>                      int is_bigendian, backtrace_error_callback 
> error_callback,
>                      void *data, struct unit *u,
> -                    struct unit_addrs_vector *addrs)
> +                    struct unit_addrs_vector *addrs,
> +                    struct dwarf_data *altlink)

Same.  altlink should be before the error_callback parameter.


> @@ -1431,7 +1444,8 @@ build_address_map (struct backtrace_state *state, 
> uintptr_t base_address,
>                    const unsigned char *dwarf_ranges, size_t 
> dwarf_ranges_size,
>                    const unsigned char *dwarf_str, size_t dwarf_str_size,
>                    int is_bigendian, backtrace_error_callback error_callback,
> -                  void *data, struct unit_addrs_vector *addrs)
> +                  void *data, struct unit_addrs_vector *addrs,
> +                  struct dwarf_data *altlink)

Same.

Ian

Reply via email to