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